文件打开函数open(file,mode='r',...)
f1=open('D:\\figure.txt','r') 注:\\可用/替代
关键字with:防止读写代码操作异常以致文件无法正常关闭
with open(' ',' ') as f:
文件操作
注:使用with关键字时文件操作只能在关键字下进行
打开模式 | 说明 |
‘r’ | 只读 |
‘w’ | 文件不存在,则创建文件;文件存在,清空文件 |
‘a’ | 追加模式,在文件末尾操作 |
‘t’ | 默认模式,文本(可省略) |
文件函数 | 作用 |
f=open ( file , mode ) | 打开文件 |
f.close ( ) | 关闭文件 |
f.read(size) | 从文件中读取size个字符,当size未赋值或者为-1时,输出整个文件 |
f.readline ( ) | 从文件中获取一行内容作为结果返回 |
f.readlines( ) | 将文件中的每行文本作为一个字符串存入列表中,然后返回列表 |
f.write(str) | 将字符串写入文件的末尾,打开方式用‘a’追加写入。返回字符写入个数 |
f.writelines(s) | 将字符串列表写入文件 |
f.tell() | 返回文件指针的当前位置(一个汉字占两个字节) |
f.seek(offset,from) | 移动文件指针的位置,from:0表示从文件头开始计算,1表示从当前位置开始计算,2表示从文件尾开始计算(to be continueing) |
迭代:
>>> f = open('G:/record.txt','r')
>>> for each_line in f:
print(each_line)
递归和迭代都属于循环方法,递归通过重复调用函数自身来实现循环,而迭代通过某一段函数体的重复来实现循环。
参考代码:
def save_file(boy,girl,count):
file_name_boy='boy_'+str(count)+'.txt'
file_name_girl='girl_'+str(count)+'.txt'
boy_file=open(file_name_boy,'w')
girl_file=open(file_name_girl,'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
def split_file():
f=open('G:/record.txt')
boy=[]
girl=[]
count=1
for each_line in f:
if each_line[:6]!= '======':
(role,line_spoken)=each_line.split(':',1)
if role=='小甲鱼':
boy.append(line_spoken)
if role=='小客服':
girl.append(line_spoken)
else:
save_file(boy,girl,count)
boy=[]
girl=[]
count+=1
save_file(boy,girl,count)
f.close()
split_file()
Python是跨平台语言,也就是说同样的源代码在不同的操作系统上可以无需修改就执行
os模块和os.path
二进制操作
rb,wb:二进制可读,可写
pickle模块
pickle.dump(序列,文件变量):将序列以二进制形式写入文件
pickle.load(文件变量):打开文件
import pickle
my_list=["华晨宇","薛之谦","周杰伦"]
f= open("sing.txt",'wb')
pickle.dump(my_list,f)
f.close()
k=open("sing.txt","rb")
l=pickle.load(k)
print(l)