Python基础篇【第七篇】:文件操作
open函数
用于文件处理,使用方式:
#file = open('文件路径','操作方式','指定以什么字符集方式打开') file = open("ha.log",'r',encoding='utf-8')
操作方法:
序号 | 方法及描述 |
---|---|
1 |
file.close() 关闭文件。关闭后文件不能再进行读写操作。 |
2 |
file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。 |
3 |
file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。 |
4 |
file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。 |
5 |
file.next() 返回文件下一行。 |
6 |
file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。 |
7 |
file.readline([size]) 读取整行,包括 "\n" 字符。 |
8 |
file.readlines([sizehint]) 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。 |
9 |
file.seek(offset[, whence]) 设置文件当前位置 |
10 |
file.tell() 返回文件当前位置。 |
11 |
file.truncate([size]) 截取文件,截取的字节通过size指定,默认为当前文件位置。 |
12 |
file.write(str) 将字符串写入文件,没有返回值。 |
13 |
file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 |
文件操作:打开文件、操作文件、关闭文件,在对文件操作的时候默认的方式是只读,在Python内部打开文件的时候是以二进制的方式打开的,通过解释器输出以人能看的懂的方式输出。
1 #只读,r 2 f = open('ha.log','r') 3 f.write('fasdf') 4 f.close() 5 6 #w,只写模式[不可读;文件不存在则创建;存在则清空内容] 7 f = open('ha1.log','w') 8 f.write("123") 9 f.close() 10 11 #x,只写模式[不可读;不存在则创建,存在则报错] 12 f = open("ha2.log",'x') 13 f.write("456") 14 f.close() 15 16 #a,追加模式[不可读;不存在则创建;存在则之追加内容] 17 f = open('ha3.log','a') 18 f.write("12345") 19 f.close() 20 21 #字节的方式打开 22 #1,只读,rb 23 f = open('ha.log','rb') 24 data = f.read() 25 f.close() 26 print(type(data)) 27 print(data) 28 str_data = str(data,encoding="utf-8") 29 print(str_data) 30 31 #2.只写 32 f = open('ha.log','wb') 33 str_data = "中国人" 34 bytes_data = bytes(str_data,encoding='utf-8') 35 # f.write(bytes("中国",encoding='utf-8')) 36 f.write(bytes_data) 37 f.close() 38 39 #r+读,写 40 f = open('ha.log','r+') 41 #指针0,起始位置 42 print(f.tell()) 43 data = f.read() 44 print(type(data),data) 45 f.write("德国人") 46 data = f.read() 47 print(type(data),data) 48 print(f.tell()) 49 f.close() 50 51 #w+,先清空,在写的之后,就可以读了,写过之后指针到最后 52 f = open('ha.log','w+') 53 f.write("abc") 54 f.seek(0) 55 data = f.read() 56 f.close() 57 print(data) 58 59 # x+如果文件就会报错,其他和w+一样 60 61 #a+ 62 # a,打开的同事,指针已经移动到最后 63 f = open('ha.log','a+') 64 # print(f.tell()) 65 data = f.read() 66 print(f.tell()) 67 f.seek(0) 68 print(f.tell()) 69 data = f.read() 70 f.close() 71 print(data) 72 73 # seek(num)调整位置 74 # tell()查看位置 75 # 76 # 读取所有行 77 f = open('ha.log','r') 78 for line in f: 79 print(line) 80 81 #with,支持同时打开两个文件(python2.7之后) 82 with open('ha.log','r') as f, open('ha1.log','r') as f2: 83 data = f.read(),f2.read() 84 print(data)
常用方法:
1 def close(self, *args, **kwargs): # real signature unknown 2 '''关闭文件''' 3 pass 4 5 def detach(self, *args, **kwargs): # real signature unknown 6 '''分离?''' 7 pass 8 9 def fileno(self, *args, **kwargs): # real signature unknown 10 '''文件描述''' 11 pass 12 13 def flush(self, *args, **kwargs): # real signature unknown 14 '''刷新文件内部缓冲区''' 15 pass 16 17 def isatty(self, *args, **kwargs): # real signature unknown 18 '''判断文件是否是同意tty设备?''' 19 pass 20 21 def read(self, *args, **kwargs): # real signature unknown 22 '''读文件,指定字节数据''' 23 pass 24 25 def readable(self, *args, **kwargs): # real signature unknown 26 '''是否可读''' 27 pass 28 29 def readline(self, *args, **kwargs): # real signature unknown 30 '''仅读取一行''' 31 pass 32 33 def seek(self, *args, **kwargs): # real signature unknown 34 '''指定文件中指针的位置''' 35 pass 36 37 def seekable(self, *args, **kwargs): # real signature unknown 38 '''指针是否可操作''' 39 pass 40 41 def tell(self, *args, **kwargs): # real signature unknown 42 '''获取指针位置''' 43 pass 44 45 def truncate(self, *args, **kwargs): # real signature unknown 46 '''截断数据,仅保留指定之前的数据''' 47 pass 48 49 def writable(self, *args, **kwargs): # real signature unknown 50 '''是否可写''' 51 pass 52 53 def write(self, *args, **kwargs): # real signature unknown 54 '''写内容''' 55 pass