python---文件操作,,一、对文件操作流程1


一、对文件操作流程
1.打开文件,得到文件句柄并赋值给一个变量
2.通过文件句柄对文件进行操作
3.关闭文件


二、文件打开模式
f=open("file_test","r",encoding="utf-8")#打开文件,“读模式”,只能读,得到文件句柄并赋值给一个变量print(f.read())#读文件所有内容,读完之后文件光标跳到最后,文件大时慎用f.close()f1=open("file_test","w",encoding="utf-8")#写模式,会新建一个file_test文件,再往里写入f1.write("-------------")f1.close()f2=open("file_test","a",encoding="utf-8")#追加模式,在原文件内容最后追加,无原文件则新建f2.write("-------------")f2.close()f3=open("file_test","r+",encoding="utf-8")#读写模式,写在原文件内容最后追加,无原文件则新建print(f3.readline())#按行读print(f3.readline())print(f3.readline())#打印前三行,这个时候光标移动到第三行位置print(f3.tell())#打印光标位置f3.write("--------------")#但是写入还是文件内容最后写入f3.close()f4=open("file_test","w+",encoding="utf-8")#写读模式,,只要是“写在前”都会建一个新文件,在写入f4.write("----------------------\n")f4.write("----------------------\n")f4.write("----------------------\n")f4.seek(10)#光标移动到10的位置f4.write("test4")#再写入会将原内容覆盖f4.seek(0)#将光标移动到开头的位置print(f4.read())f4.close()#输出#----------nihao-----#----------------------#----------------------f5=open("file_test","a+",encoding="utf-8")#追加读模式,在原文件内容最后追加,无原文件新建f5.write("----------------------\n")f5.write("----------------------\n")f5.write("----------------------\n")f5.seek(10)#光标移动到10的位置f5.write("test5")#再写入会在文件内容最后写入f5.seek(0)print(f5.read())f5.close()f6=open("file_test","rb")#以二进制文件格式读这个文件print(f6.readline())print(f6.readline())print(f6.readline())f6.close()f7=open("file_test","ab")#以二进制文件格式追加这个文件f7.write("-------------------\n".encode())#encode将str字符转换为bytesf7.write("-------------------\n".encode())f7.write("-------------------\n".encode())f7.close()f8=open("file_test","wb")#以二进制文件格式写这个文件f8.write("-------------------\n".encode())#encode将str字符转换为bytesf8.write("-------------------\n".encode())f8.write("-------------------\n".encode())f8.close()#注:还有rU或r+U模式,"U"表示在读取时,可以将\r\n\r\n自动转换成\n(与r或r+模式同使用)

三、文件循环

#按行循环,并且将第五行替换f=open("file_test","r",encoding="utf-8")count=0forlineinf:count+=1ifcount==5:print("----分割线----")continueprint(line.strip())#strip是去除行首行尾的空格符和换行符f.close()#f.readlines()#切记用f.readlines是先将文件转换为列表,如果文件太大时对内存消耗太大

四、文件的修改

#打开一个文件,修改完了写到一个新文件f=open("file_test","r",encoding="utf-8")f_new=open("file_new","w",encoding="utf-8")forlineinf:#按行取出,每行都是一串字符串if"fengxiaoli"inline:line=line.replace("fengxiaoli","FENGXIAOLI")#对字符串进行操作,Jf_new.write(line)f.close()f_new.close()

五、flush方法

f=open("file_test","w",encoding="utf-8")f.write("hello\n")f.write("hello\n")f.write("hello\n")f.flush()#当往文件写内容的时候,会有一个缓存,达到一个时间,一次往文件写入。如果这时候断电可能内容并没有写入成功,flush刷新会立即执行

六、with语句

#with语句作用,为了避免打开文件后忘记关闭withopen("file_test","r",encoding="utf-8")asf:#类似于f=open("file_test","r",encoding="utf-8")withopen("file_test","r",encoding="utf-8")asf,\#还可以同时打开多个文件open("file_test2","r",encoding="utf-8")asf2:

七、其他操作

f=open("file_test","r",encoding="utf-8")print(f.tell())#打印光标位置,按字符计数print(f.readline())#按行读print(f.read(10))#按字符读print(f.tell())f.seek(0)#把光标回到开头f.seek(12)#把光标移动到12个字符的位置print(f.readline())print(f.encoding)#打印文件编码print(f.isatty())#判断文件是否是终端设备,返回Tureorfalseprint(f.seekable())#判断是否能移动文件光标,返回Tureorfalseprint(f.readable())#判断文件是否可读print(f.writable())#判断文件是否可写#f=open("file_test","a",encoding="utf-8")#f.truncate(12)#从头开始截取多少字符



python---文件操作

评论关闭