- 文件与文件系统
打开文件
open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True) Open file and return a stream. Raise OSError upon failure.
file: 必需,文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline: 区分换行符
常见的mode如下表所示:
打开模式 执行操作
‘r’ 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
‘w’ 打开一个文件只用于写入。
如果该文件已存在则打开文件,并从开头开始编辑。
即原有内容会被删除。
如果该文件不存在,创建新文件。
‘x’ 写模式,新建一个文件,如果该文件已存在则会报错。
‘a’ 追加模式,打开一个文件用于追加。
如果该文件已存在,文件指针将会放在文件的结尾。
也就是说,新的内容将会被写入到已有内容之后。
如果该文件不存在,创建新文件进行写入。
‘b’ 以二进制模式打开文件。一般用于非文本文件,如:图片。
‘t’ 以文本模式打开(默认)。一般用于文本文件,如:txt。
‘+’ 可读写模式(可添加到其它模式中使用)
【例】打开一个文件,并返回文件对象,如果该文件无法被打开,会抛出OSError。
f = open(‘将进酒.txt’)
print(f)
<_io.TextIOWrapper name=‘将进酒.txt’ mode=‘r’ encoding=‘cp936’>
for each in f:
print(each)
君不见,黄河之水天上来,奔流到海不复回。
君不见,高堂明镜悲白发,朝如青丝暮成雪。
人生得意须尽欢,莫使金樽空对月。
天生我材必有用,千金散尽还复来。
烹羊宰牛且为乐,会须一饮三百杯。
岑夫子,丹丘生,将进酒,杯莫停。
与君歌一曲,请君为我倾耳听。
钟鼓馔玉不足贵,但愿长醉不复醒。
古来圣贤皆寂寞,惟有饮者留其名。
陈王昔时宴平乐,斗酒十千恣欢谑。
主人何为言少钱,径须沽取对君酌。
五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。
文件对象方法
fileObject.close() 用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发ValueError错误。
【例】
f = open(“将进酒.txt”)
print(‘FileName:’, f.name) # FileName: 将进酒.txt
f.close()
fileObject.read([size]) 用于从文件读取指定的字符数,如果未给定或为负则读取所有。
【例】
f = open(‘将进酒.txt’, ‘r’)
line = f.read(20)
print(“读取的字符串: %s” % line)
读取的字符串: 君不见,黄河之水天上来,奔流到海不复回。
f.close()
fileObject.readline()读取整行,包括 “\n” 字符。
【例】
f = open(‘将进酒.txt’, ‘r’)
line = f.readline()
print(“读取的字符串: %s” % line)
读取的字符串: 君不见,黄河之水天上来,奔流到海不复回。
f.close()
fileObject.readlines()用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for… in … 结构进行处理。
【例】
f = open(‘将进酒.txt’, ‘r’)
lines = f.readlines()
print(lines)
for each in lines:
each.strip()
print(each)