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])

读取整行,包括 " " 字符。

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
原文地址:https://www.cnblogs.com/allan-king/p/5478556.html