Python文件操作

 文件操作

对一个文件进行操作大致分为三个部分:

1.打开文件
2.操作文件
3.关闭文件

如何打开一个文件呢?我们可以使用open()函数。

文件句柄 = open(文件名,模式,编码)

 

文件名:如果文件和你的py在同一路径下只需要写上文件名即可。如果文件和你的py文件不在一个路径下,就需要写上绝对路径。

模式:默认的模式为'r',读模式。除了r模式之外还有其他类型的模式。

基本模式:

r:【只读模式】  默认模式

w:【只写模式】  文件不存在则创建;存在则清空内容再写

x:【只写模式】   不存在则创建;存在则报错

a:【追加模式】  不存在则创建,存在则追加内容

# 读模式
1 f = open('user.txt',encoding='utf-8')  # 打开文件
2 data = f.read()  # 写文件
3 f.close() # 关闭文件
4 print(data)
# 只写模式
f2 = open('tmp.txt', 'w', encoding='utf-8')  # 打开文件
f2.write('只写模式')  # 写文件
f2.colse() # 关闭文件

字节模式:

rb:【二进制读】

wb:【二进制写】

xb:【二进制写】

ab:【二进制追加】

1 # 二进制读
2 f = open('user.txt','rb')  
3 data = f.read()
4 f.close()
5 print(data)
1 # 二进制写
2 f = open('user.txt','wb')
3 data = bytes('二进制写', encoding='utf-8')
4 f.write(data)
5 f.close()

 文件的操作:

文件除了打开,读、写,关闭之外还有那些操作呢。下面我们来看一下。

 1 def close(self):
 2         #关闭文件
 3 
 4     def fileno(self):
 5         """Return the underlying file descriptor (an integer) of the stream if
 6         it exists.
 7 
 8         :rtype: int
 9         """
10         return 0
11 
12     def flush(self):
13         # 清空内存缓存区
14 
15     def isatty(self):
16         # 判断是否是tty文件
17 
18     def readable(self):
19          # 判断文件是否可读
20 
21     def readline(self, limit=-1):
22         # 读一行
23 
24     def readlines(self, hint=-1):
25         # 读文件将文件的每一行作为列表的一个元素,结果返回列表
26 
27     def seek(self, offset, whence=io.SEEK_SET):
28         # 指定文件中指针的位置
29 
30     def seekable(self):
31         # 判断指针是否可操作
32 
33     def tell(self):
34         # 获取指针位置
35 
36     def truncate(self, size=None):
37         # 截取,保留指针之前的内容
38 
39     def writable(self):
40          # 判断是否可写
41 
42     def writelines(self, lines):
43         # 写文件 将列表作为参数写入文件
44 
45     
46     def read(self, n=None):
47         # 读指定字节的数据,默认读取整个文件。
48 
49     def write(self, s):
50         # 写文件
文件操作

小结

r+(读写) 和 w+(写读)的区别:

r+(读写),先读后写:是先读取文件中的内容再在尾部写入。文件中含有原来的内容和后来写入的内容。先写后读:从头部开始写,写多少字节覆盖多少字节。
w+(写读),执行完open后文件就会被清空。

练习

1 with open('file.txt', encoding='utf-8')as f, open('file_back.txt', 'a', encoding='utf-8') as f2:
2     for line in f:
3         f2.write(line)
逐行复制文件
 1 import os
 2 
 3 with open('file.txt', encoding='utf-8') as f, open('file2.txt', 'w', encoding='utf-8') as f2:
 4 
 5     for line in f:
 6         user_list = line.split('|')
 7         user_list[0] = user_list[0]+'_somebody'
 8         user_str = '|'.join(user_list)
 9         f2.write(user_str)
10 
11 f.close()
12 f2.close()
13 
14 os.remove('file.txt')
15 os.rename('file2.txt', 'file.txt')
修改文件

 

 

 

 

 

posted @ 2017-09-04 18:36  流星之泪  阅读(115)  评论(0)    收藏  举报