TXT类文件处理
简述
open() 方法用于打开一个文件,并返回file对象。对文件整个处理过程中都需要使用到这个函数,所以一般会将其赋值给某变量(比如f),接下来的处理调用file对象的多种方法,比如f.write(str)、f.close()......
open() 函数常用形式是接收两个参数:open(file, mode)。file是必须的,mode不是必须的默认为r只读,也许还有其它具有默认值的参数。
file可以是相对路径,也可以是绝对路径,注意右键文件复制路径生成的'\'要改为'/'。
相对路径如"/Desktop/1.txt",绝对路径如"C:/Users/Python/Desktop/1.txt"。
处理结束后一定要关闭文件对象,即调用close()方法。
代码示例
open("C:/Users/Python/Desktop/1.txt", "a").write( "Python 是一个非常好的语言。\n的确非常好!!\n" )
open("C:/Users/Python/Desktop/1.txt", "a").close()
上述的常用写法是:
f = open("C:/Users/Python/Desktop/1.txt", "a") #注意右键文件复制路径生成的'\'要改为'/'
f.write( "Python 是一个非常好的语言。\n的确非常好!!\n" )
f.close()
with用法看起来更规整:
with open("C:/Users/Python/Desktop/1.txt", "a+") as f:
f.write( "Python 是一个非常好的语言。\n的确非常好!!\n" )
f.close() #也可以写成f.closed
常用的mode
r 以只读方式打开文件。文件的指针(可以认为是光标)将会放在文件的开头。
w 只用于写入。如果文件存在则从头开始编辑,原有内容会被删除。如果不存在,创建新文件。
a 只用于追加。如果文件存在则从尾开始编辑,原有内容不会被删除。如果不存在,创建新文件。
a+ 用于读写和追加。如果文件存在则从尾开始编辑,原有内容不会被删除。如果不存在,创建新文件。
常用的file对象函数
file.read(size) 从文件光标处读取size长度的数据。size是int类型,空缺表示光标后的所有内容被读取返回。
f.write(string) 将 string 写入到文件中。
f.close() 关闭文件并释放系统的资源。
f.seek(offset, from) 改变文件的光标位置:
seek(x,0) : 从文件开头往后移动x个字符
seek(x,1) : 从当前位置往后移动x个字符
seek(-x,2):从文件结尾往前移动x个字符
注意
可以用for循环返回每一行
f = open("/tmp/foo.txt", "r")
for i in f:
print i
f.close()
f.seek()好像只和file.read()捆绑使用。
如果先read后write,写入就不生效,不明白原因!
而且write前的read还必须指定size,否则报错!
f=open("C:/Users/Python/Desktop/3.txt", "a+")
f.read(5)
f.write('555')
f.closed