文件操作的流程(三步)
打开——写入/读取——关闭
现有文件(夜殇)如下:
夜深阑静,
风有声而人无语,
独坐案前不能寐。
四壁皆空,
放眼无堵,
唯思想浮涨溢 于中。
奔放不羁,
犹如决堤之水,
收而不可收。
任尔所为不过往,
斯是。斯也!
基本操作:
#!/usr/bin/python3.5
# vim:set fileencoding=utf-8:
f = open('yeshang.txt') # 打开文件
first_line = f.readline()
print('first line:', first_line) # 读一行
print('-' * 10 + '我是分隔线' + '-' * 10)
data = f.read() # 只要文件没读完就会继续往下读取
print(data) # 打印文件
f.close() # 关闭文件
------------------------------------------
f = open('yeshang.txt') # 打开文件
content = f.read(21) # 读取21个长度
print(content)
print('-' * 30)
content1 = f.readlines() # 读取多行,返回列表(每个元素都是一行)
print(content1)
print('-' * 30)
content2 = f.read() # 文件已经全部读完,没有内容可读
print(content2)
f.close()
文件打开模式
b(附件模式):以二进制字符串形式读/写文件
图解
二进制打开模式
文件方法一览表:
读取/写入文件
f = open('write.txt', mode='w') # 只以写模式打开
content = '以写模式打开write.txt,该文件若不存在则创建。'
f.write(content) # 写入内容
f.flush() # 刷新缓存,写入文件
f.close()
f = open('write.txt', 'a') # 以追加模式打开
content = '以追加模式打开文件,并在文件中追加内容'
f.write(content)
f.flush()
f.close()
f = open('write.txt', 'w+') # 以写和读模式打开,此时以w模式写入会覆盖掉之前写入的两行内容
content = '以写和读模式打开write.txt'
f.write(content)
f.flush()
f.seek(0) # 将光标的位置移动到文件开头
data = f.read()
print(data)
f.close()
with语句(实现自动关闭文件)
为了避免打开文件后忘记关闭,可以通过管理上下文,即:
with open('filename','r') as f :
pass
如此方式,当with代码块执行完毕后,会自动关闭文件并释放资源。
在python2.7后,with又支持同时对多个文件进行管理,即:
with open('filename1') as f1, open('filename2') as f2 :
pass