文件打开模式
打开模式 | 执行操作 |
'r' | 以只读方式打开文件(默认) |
'w' | 以写入的方式打开文件,会覆盖已存在的文件 |
'x' | 如果文件已经存在,使用此模式打开将引发异常 |
'a' | 以写入模式打开,如果文件存在,则在末尾追加写入 |
'b' | 以二进制模式打开文件 |
't' | 以文本模式打开(默认) |
'+' | 可读写模式(可添加到其他模式中使用) |
'U' | 通用换行符支持 |
文件对象方法
文件对象方法 | 执行操作 |
f.close() | 关闭文件 |
f.read([size=-1]) | 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回 |
f.readline([size=-1]) | 从文件中读取并返回一行(包括行结束符),如果有size有定义则返回size个字符 |
f.write(str) | 将字符串str写入文件 |
f.writelines(seq) | 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象 |
f.seek(offset, from) | 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节 |
f.tell() | 返回当前在文件中的位置 |
f.truncate([size=file.tell()]) | 截取文件到size个字节,默认是截取到文件指针当前位置 |
不管是读取文件还是写入内容文件, 都要先打开文件以及关闭文件才行:
方法一: with open 的方式,不用关文件,
with open("/tmp/foo.txt") as F:
for line in F.readlines():
print(line)
file的读写方法:
F.read([size]) #size为读取的长度,以byte为单位
F.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分
F.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
F.write(str) #把str写到文件中,write()并不会在str后加上一个换行符
F.writelines(seq) #把seq的内容全部写到文件中。这个函数也只是忠实地写入,不会在每行后面加上任何东西。
方法二:
f = open('/tmp/tmp.txt')
try:
for line in f.readlines():
print(line)
finally:
f.close()
bb
编写一个程序,接受用户的输入并保存为新的文件,程序实现如下:
def file_write(file_name):
f=open(file_name,'w')
print('请输入内容【单独输入\':w\'保存退出】:')
while True:
write_some=input()
if write!=':w':
f.write('%s\n'%write_some)
else:
break
f.close()
file_name=input()
file_write(file_name)