1.打开文件 filename,从里面读东西
f = file("filename","r")
注意:
- 或读'r'是默认的参数,因此可以省略参数:f = file("finename")
- 文件操作file()和open()是一样的,因此可以互换:f = open("filename")
逐行读入
for line in f:
读一行:line = f.readline()
这样回把最后的换行符(假设有)读入,去(即等价于操作:line = line[:-1] 或 line = line.strip("\n"))
读取指定的一行:
import linecache print linecache.getline("文件名",第几行)
读所有内容:line = f.read()
2.打开文件filename,往里面写东西
打开:f = file("filename","w") #这样里面原来的东西全部清空,如果没有文件,自动生成
写入: f.write("文件名", 'w').
如果在原来基础上最后继续写,用参数'a',即 f.write('文件名', 'a')
eg:写到具体某个文件夹下,例如D:\hello:
path = "D:\hao" f = file(path + "filename","w") f.write("内容")
3.关闭打开的文件:
f.close()
4. 读取制定位置的字符
f = file("1.txt") 打开了文件指针指到了第0个字符。假设1.txt的内容为:
0123456789
1)f.seek(2,0) #从开始位置往后移动2个位置
print f.read() #结果 "23456789"
2)f.seek(-2,2) #从最后位置往前移动2个位置
print f.read() #结果 "89"
3)f.seek(0)
f.read()
f.seek(-2,2)
f.seek(1,1) #从当前位置“8”往前指一个位置
print f.read() #结果"9"
小节:f.seek(0)定位到第一个位置
f.seek(m,n)#n = 0从第一个位置移动m个位置
#n = 2从最后一个位置移动m个位置
#n = 1从当前位置移动过m个位置
4)f.read(m) #从当前位置读取m个字符
5)f.tell() #记录光标的位置
6)f.closed # 检验文件是否已关闭,是True,否 False
open/文件操作
f=open('/tmp/hello','w')
#open(路径+文件名,读写模式)
#读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式
如:'rb','wb','r+b'等等
读写模式的类型有:
rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )
注意:
1、使用'W',文件若存在,首先要清空,然后(重新)创建,
2、使用'a'模式 ,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。
f.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)
file.readline() 返回一行
file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行
for line in f: print line #通过迭代器访问
f.write("hello\n") #如果要写入字符串以外的数据,先将他转换为字符串.
f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
f.seek(偏移量,[起始位置])
用来移动文件指针
偏移量:单位:比特,可正可负
起始位置:0-文件头,默认值;1-当前位置;2-文件尾
f.close() 关闭文件
Code:
#!/usr/bin/env python # Filename: using_file.py poem='''\Programming is funWhen the work is doneif you wanna make your work also fun: use Python!''' f=file('poem.txt','w') # open for 'w'riting f.write(poem) # write text to file f.close() # close the file f=file('poem.txt') # if no mode is specified, 'r'ead mode is assumed by default while True: line=f.readline() if len(line)==0: # Zero length indicates EOF break print line, # Notice comma to avoid automatic newline added by Python f.close() # close the file |