Python中open函数怎么操作文件
在 Python 中,如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open() 函数实现。
open() 函数用于创建或打开指定文件,该函数的常用语法格式如下:
file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])
此格式中,用 [] 括起来的部分为可选参数,即可以使用也可以省略。其中,各个参数所代表的含义如下:
file_name:要创建或打开文件的文件名称,该名称要用引号(单引号或双引号都可以)括起来。需要注意的是,如果要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名即可;否则,此参数需要指定打开文件所在的完整路径。
mode:可选参数,用于指定文件的打开模式。可选的打开模式(如下方表格)所示。如果不写,则默认以只读(r)模式打开文件。
buffering:可选参数,用于指定对文件做读写操作时,是否使用缓冲区(本节后续会详细介绍)。
encoding:手动设定打开文件时所使用的编码格式,不同平台的 ecoding 参数值也不同,以 Windows 为例,其默认为 cp936(实际上就是 GBK 编码)。
open() 函数支持的文件打开模式如下:
| 模式 | 描述 | 
| r | 只读模式打开文件,读文件内容的指针会放在文件的开头。 | 
| rb | 以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件的开头,一般用于非文本文件,如图片文件、音频文件等。 | 
| r+ | 打开文件后,既可以从头读取文件内容,也可以从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长度的原有内容。 | 
| rb+ | 以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件的开头,通常针对非文本文件(如音频文件)。 | 
| w | 以只写模式打开文件,若该文件存在,打开时会清空文件中原有的内容。 | 
| wb | 以二进制格式、只写模式打开文件,一般用于非文本文件(如音频文件) | 
| w+ | 打开文件后,会对原有内容进行清空,并对该文件有读写权限。 | 
| wb+ | 以二进制格式、读写模式打开文件,一般用于非文本文件 | 
| a | 以追加模式打开一个文件,对文件只有写入权限,如果文件已经存在,文件指针将放在文件的末尾(即新写入内容会位于已有内容之后);反之,则会创建新文件。 | 
| ab | 以二进制格式打开文件,并采用追加模式,对文件只有写权限。如果该文件已存在,文件指针位于文件末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 | 
| a+ | 以读写模式打开文件;如果文件存在,文件指针放在文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 | 
| ab+ | 以二进制模式打开文件,并采用追加模式,对文件具有读写权限,如果文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 | 
一、创建文件
file = open('hello.txt','w')
运行结果会在当前执行脚本的目录下会创建一个hello.txt文件。
二、写入文件
file = open('hello.txt','w')
print(file.write('码农博客\n'))	# .write()方法是往文件里写入内容
file.close()        # .close()方法是将文件关闭
运行结果:
5
运行结果的5是告诉我们一共写入了5个字符。但是你打开文件看会出现乱码,这要怎么解决呢?
file = open('hello.txt','w',encoding='utf-8')		# 将编码设定成utf-8编码
print(file.write('码农博客\n'))
file.close()
这个时候你再打开文件,显示就是正常的。
三、读取文件
读取文件中的全部内容
file = open('hello.txt','r',encoding='utf8')
print(file.read())      # read方法是读取文件中全部内容
运行结果:
码农博客
逐行读取文件的内容
file = open('hello.txt','r',encoding='utf8')
print(file.readline())      # readline方法是逐行读取文件中的内容
运行结果:
码农博客
如果要打印第二行内容的话,那就再写一次“print(file.readline())”。
读取文件中全部内容并返回成列表
file = open('hello.txt','r',encoding='utf8')
print(file.readlines())      # readlines方法是读取文件中所有内容,返回一个列表,并将每行内容当成列表中的一个元素
运行结果:
['码农博客\n']
四、with上下文
如果怕文件打开后忘记关闭,可以使用with上下文,再执行完with下的代码之后,文件会自动关闭。
with open('hello.txt','r',encoding='utf8') as f:	# as是给文件临时取名叫f
    print(f.readlines())
运行结果:
['码农博客\n']
本文转自:https://www.myblou.com/archives/1446
Python中open函数怎么操作文件的更多相关文章
- Python中open函数怎么操作文件--9
		转:https://www.tuicool.com/wx/vYjaYnV 在 Python 中,如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open ... 
- Python中的编码及操作文件
		------------恢复内容开始------------ 1,字符编码 ASCII 用1个字符来表示所有的英文字母和特殊符号 GB2313(GBK)用2个字符来表示英文字母及中文字符,且决定如果 ... 
- Python 中当前位置以及目录文件遍历操作
		Python 中当前位置以及目录文件遍历操作 当前位置 print(os.path.dirname(__file__)) 其中 dirname 会选择目录(文件夹),"__file__&qu ... 
- 【转】python 历险记(四)— python 中常用的 json 操作
		[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ... 
- Python 中的函数
		学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数是结构化编程的核心.我们使用函数可以增加程序的可读性.自定义函数时使用关键字def 函数由多条语句组成.在定义函数 ... 
- Python中print()函数不换行的方法
		一.让print()函数不换行 在Python中,print()函数默认是换行的.但是,在很多情况下,我们需要不换行的输出(比如在算法竞赛中).那么,在Python中如何做到这一点呢? 其实很简单.只 ... 
- python 中main函数总结
		Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数. 每个文件(模块)都可以任意写一些没有缩进的代码 ... 
- VC 使用msxml6.dll动态链接库中的函数读写XML文件
		VC 使用msxml6.dll动态链接库中的函数读写XML文件 目录 1 引言 2 .dll使用方法 3 常用函数总结 4 实例应用 5 运行效果预览 6 补充说明 7 不足之处 8 更新 引言: ... 
- python中configparser模块读取ini文件
		python中configparser模块读取ini文件 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(se ... 
随机推荐
- webug第十三关:XSS
			第十三关:XSS 点击链接 xss,弹框框 
- CleanMyMac X是如何进行Mac文件清理的
			Mac系统进行文件清理,一般是直接将文件拖动入"废纸篓"回收站中,然后通过清理回收站,就完成了一次文件清理的操作,但是这么做并无法保证文件被彻底删除了,有些文件通过一些安全恢复手段 ... 
- python应用(5):变量类型与数据结构
			如前所说,写程序如同给算法写壳,而算法就是流程,所以流程是程序的主角(但这个流程不一定要你来设计).在程序中,为了配合流程(算法)的实现,除了顺序.分支与循环语句的使用,还要借助"变量&qu ... 
- How tomcat works(深入剖析tomcat)(7) Logger
			How tomcat works (7)日志记录器 总体概述 顾名思义,这一章将的是tomcat的日志记录器组件,比较简单,tomcat提供了几种类型不同的日志记录器,但是所有的日志记录器都需要实现L ... 
- 网骗欺诈?网络裸奔?都是因为 HTTP?
			先跟大家讲个故事,我初恋是在初中时谈的,我的后桌的后桌.那个时候没有手机这类的沟通工具,上课交流有三宝,脚踢屁股.笔戳后背以及传纸条,当然我只能是那个屁股和后背,还不是能让初恋踢到的后背. 但是说实话 ... 
- Bootstrap(修改中)
			表格 斑马表格 <table class="table-striped"> </table> 鼠标经过表格的hover效果 <table class= ... 
- JZOJ【NOIP2013模拟联考14】隐藏指令
			JZOJ[NOIP2013模拟联考14]隐藏指令 题目 Description 在d维欧几里得空间中,指令是一个长度为2N的串.串的每一个元素为d个正交基的方向及反方向之一.例如,d = 1时(数轴) ... 
- 如何将图片、html等格式转成pdf
			const int WWidth = 600; const int HHeight = 800; List<System.Drawing.Image> AllName = new List ... 
- scentos7安装redis,以及redis的主从配置
			redis的安装 下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz 解压压缩包 tar -zxvf redis- ... 
- 第4章 基础知识进阶  第4.1节 Python基础概念之迭代、可迭代对象、迭代器
			第四章 基础知识进阶第十七节 迭代.可迭代对象.迭代器 一. 引言 本来计划讲完元组和字典后就讲列表解析和字典解析,但要理解列表解析和字典解析,就需要掌握Python的高级的类型迭代器,因此本节 ... 
