企业网站的开发公司,沈阳网站的建设,wordpress优秀开源主题,斯皮尔网站建设文件
打开文件
函数open的参数mode的最常见取值
值描述‘r’读取模式#xff08;默认值#xff09;‘w’写入模式‘x’独占写入模式‘a’附加模式‘b’二进制模式#xff08;与其他模式结合使用#xff09;‘t’文本模式#xff08;默认值#xff0c;与其他模式结合使…文件
打开文件
函数open的参数mode的最常见取值
值描述‘r’读取模式默认值‘w’写入模式‘x’独占写入模式‘a’附加模式‘b’二进制模式与其他模式结合使用‘t’文本模式默认值与其他模式结合使用‘’读写模式与其他模式结合使用
显式地指定读取模式的效果与根本不指定模式相同写入模式让你能够写入文件并在文件不存在时创建它独占写入模式更进一步在文件已存在时引发FileExistsError异常在写入模式下打开文件时既有内容将被删除截断并从文件开头处开始写入如果要在既有文件末尾继续写入可使用附加模式
文件的基本方法
读取和写入 f open(somefile.txt, w) f.write(Hello, )
7 f.write(World!)
6 f.close() f open(somefile.txt, r) f.read(4)
Hell f.read()
o, World!PS
随机存取
seek seek(offset[, whence])将当前位置执行读取或写入的位置移到 offset 和whence 指定的地方tell 返回当前位于文件的什么位置
使用管道重定向输出
$ cat somefile.txt | python somescript.py | sort读取和写入行
readline 成行地读取,也可提供一个非负整数指定readline最多可读取多少个字符readlines 读取文件中所有行writelines 接受一个字符串列表实际上可以是任何序列或可迭代对象并将这些字符串都写入到文件或流中
PS:
没有writeline可以使用write
关闭文件
close 将文件关闭flush 重置缓冲让所做的修改反映到磁盘文件中
PS根据使用的操作系统和设置flush可能出于锁定考虑而禁止其他正在运行的程序访问这个文件
# try/finally
# 在这里打开文件
try: # 将数据写入到文件中
finally: file.close()# with
with open(somefile.txt) as somefile: do_something(somefile)迭代文件内容
每次一个字符或字节
with open(filename) as f: while True:char f.read(1) if not char: break process(char)
每次一行
with open(filename) as f: while True: line f.readline() if not line: break process(line)
读取所有内容文件不太大时
# 使用read迭代字符
with open(filename) as f: for char in f.read(): process(char)# 使用readlines迭代行
with open(filename) as f: for line in f.readlines(): process(line)
使用fileinput实现延迟行迭代
# 只读取实际需要的文本部分或使用while循环和readline结合
import fileinput
for line in fileinput.input(filename): process(line)
文本迭代器
with open(filename) as f: for line in f: process(line)小结
类似于文件的对象类似于文件的对象是支持read和readline可能还有write和writelines等方法的对象。
打开和关闭文件要打开文件可使用函数open并向它提供一个文件名。如果要确保即便发生错误时文件也将被关闭可使用with语句。
模式和文件类型打开文件时还可指定模式如’r’读取模式或’w’写入模式。通过在模式后面加上’b’可将文件作为二进制文件打开并关闭Unicode编码和换行符替换。
标准流三个标准流模块sys中的stdin、stdout和stderr都是类似于文件的对象它们实现了UNIX标准I/O机制Windows也提供了这种机制。
读取和写入要从文件或类似于文件的对象中读取可使用方法read要执行写入操作可使用方法write。
读取和写入行要从文件中读取行可使用readline和readlines要写入行可使用writelines。
迭代文件内容迭代文件内容的方法很多其中最常见的是迭代文本文件中的行这可通过简单地对文件本身进行迭代来做到。还有其他与较旧Python版本兼容的方法如使用readlines。