对文件的操作:
1、首先打开文件,打开文件需要指定打开模式(打开模式包含:r、w、a、r+、w+、a+、rb、wb、ab、rb+、wb+、ab+)、字符集;
2、对文件写、读文件、打印光标位置、变化光标位置;
3、对文件的刷新,写到磁盘中;
模式说明:
模式 | 描述 |
r |
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ |
打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ |
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w |
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb |
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ |
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ |
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a |
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ |
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
|
文件操作示例:
#author FK
import sys,time #使用w模式,会覆盖原来的文件,从头开始写 f=open("test.txt",'w',encoding="utf-8") f.write("我是一只小小小鸟!!!\n") f.write("我想飞的更高更高。\n") f.close()
#使用r模式,只能读不能修改 f1=open("test.txt","r",encoding="utf-8") print(f1.read()) f1.close()
#使用a+,可能追加及可读,注意都追加在文件尾追加 f2=open("test.txt","a+",encoding="utf-8") #写读,先创建文件,再写再读 #f2=open("test.txt","w+",encoding="utf-8"). #读写,先打开文件,先可读再写 #f2=open("test.txt","r+",encoding="utf-8") #以二进制格式读文件 #f2=open("test.txt","rb")
f2.write("this is the appending text1\n") f2.write("this is the appending text2\n")
#打印操作系统中打印文件的个数 print("print open files number:",f2.fileno())
#打印文件中的光标的位置 print("before seek method ,print the f2.tell method:",f2.tell()) #将光标移动到0位置,从头开始读 f2.seek(0) print("after seek method ,print the f2.tell method:",f2.tell())
#逐行读文件 line_count = 0 for f22 in f2: if line_count == 0: line_count +=1 continue; print(f22,end='') line_count +=1
#截断,从指定位置开始截断,不管从光标在什么位置,都是从头计算开始截断 f2.seek(300)
f2.truncate(30) #打印进度条 print("\n打印进度条测试:") for i in range(5): sys.stdout.write("#") time.sleep(1) #flush sys.stdout.flush()
#关闭文件 f2.close()
|