文件操作
基本操作
文件操作示例
f = open('test.txt',encoding='utf8')
first_line = f.readline()
print('first line:',first_line) #读一行
print('我是分割线\n',"-"*50)
data = f.read()# 读取剩下的所有内容,文件大时不要用
print(data) #打印读取内容
f.close() #关闭文件
文件打开规范
#不指定打开编码,默认使用操作系统的编码,windows为gbk,linux为utf-8,与解释器编码无关
文件打开模式
f=open('xxx.txt', '模式',encoding='gbk')
打开文件的模式有:
r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
w,只写模式【不可读;不存在则创建;存在则清空内容】
x, 只写模式【不可读;不存在则创建,存在则报错】
a, 追加模式【可读; 不存在则创建;存在则只追加内容】
"+" 表示可以同时读写某个文件
r+打开一个文件用于读写。文件指针将会放在文件的开头。
w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
"b"表示以字节的方式操作
- rb 或 rb+
- wb 或 wb+
- ab 或 ab+
文件内光标移动
f.Seek(0)
File对象的属性
如下实例:
# 打开一个文件
fo = open("foo.txt", "wb")
print "文件名: ", fo.name
print "是否已关闭 : ", fo.closed
print "访问模式 : ", fo.mode
print "末尾是否强制加空格 : ", fo.softspace
以上实例输出结果:
文件名: foo.txt
是否已关闭 : False
访问模式 : wb
末尾是否强制加空格 : 0
多文件打开方式和文件修改
with open('a.txt','r',encoding='utf-8') as read_f,
open('.a.txt.swap','w',encoding='utf-8') as write_f:
for line in read_f:
if line.startswith('hello'):
line='哈哈哈\n'
write_f.write(line)
os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')