本文首先介绍如何利用Python进行文件读写操作,最后通过实例讲解基本用法。
基础知识
打开文件
Python内置了open函数用于打开文件:1
2
3
4
5
6file object = open(file_name [, access_mode][, buffering])
参数列表:
file_name:文件名;
access_mode:打开模式,有只读、写入、追加写入等,默认方式为只读;
buffering:文件缓冲,0:不缓冲数据;1:缓冲1行数据;大于1表示缓冲指定行的数据;
access_mode文件打开模式如下:
模式
描述
r
以只读方式打开文件。文件指针处于文件的开头。(默认模式)
rb
以二进制格式打开一个文件用于只读。文件指针处于文件的开头。(默认模式)
r+
以读写方式打开文件。文件指针处于文件的开头。
rb+
以二进制格式打开一个文件用于读写。文件指针处于文件的开头。
w
打开一个文件只用于写入。若该文件已存在则将其覆盖,否则创建新文件。
wb
以二进制格式打开一个文件只用于写入。若该文件已存在则将其覆盖,否则创建新文件。
wb+
以二进制格式打开一个文件用于读写。若该文件已存在则将其覆盖,否则创建新文件。
a
打开一个文件用于追加。若文件已存在,文件指针置于文件结尾。若该文件不存在,创建新文件写入。
ab
以二进制格式打开一个文件用于追加。若文件已存在,文件指针置于文件结尾。若该文件不存在,创建新文件写入。
a+
打开一个文件用于读写。若文件已存在,文件指针置于文件结尾。若该文件不存在,创建新文件写入。
ab+
以二进制格式打开一个文件用于追加。若文件已存在,文件指针置于文件结尾。若该文件不存在,创建新文件写入。
打开文件后获得文件对象,文件对象的属性列表如下:
属性
描述
file.closed
文件是否被关闭,true:是;false:否
file.mode
文件被打开的访问模式
file.name
文件名称
关闭文件
不使用的文件对象要使用close()方法及时关闭,文件关闭语法如下:1fileObject.close();
读文件
read()方法从打开的文件中读取字符串,语法如下:1fileObject.read([count]);
count是要读取的字节数,如果没有传递count参数,则Python会尝试读取尽可能多的内容。
tell()方法显示文件指针当前所处的位置;
seek(offset[, from])方法可以更改当前文件指针位置,参数列表:
offset:要移动的字节数;
from:指定开始移动字节的参考位置,0:文件开头;1:当前位置;2:文件末尾
写文件
write()方法可以将字符串写入打开的文件(注意:write不会自动在字符串结尾添加换行符,需要自己手动添加)1fileObject.write(string);
文件重命名
文件重命名和删除文件需要借助os模块,首先要引入os模块:1import os
os模块是Python访问操作系统功能的主要接口,它提供的功能主要包括删除/重命名文件、遍历目录树以及管理文件访问权限等。
文件重命名函数rename语法如下:1os.rename(current_file_name, new_file_name)
删除文件
同样需要引入os模块,语法如下:1os.remove(file_name)
文件目录
os.path模块提供了可以完成管理和操作文件路径名中的各个部分,获取文件或子目录信息,文件路径查询等操作。
创建目录
在当前目录下创建一个新目录test:
1os.mkdir("test")
切换目录
从当前目录切换到’/home/test’目录:
1os.chdir("/home/test")
删除目录
删除目录’test’:
1os.rmdir('test')
获取当前工作目录
1os.getcwd()
遍历目录
1cwd = os.getcwd()
os.listdir(cwd)
获取文件名
去掉目录路径,返回文件名:
1os.path.basename(path)
获取文件路径
去掉文件名,返回目录路径:
1os.path.dirname(path)
实战
目标:读取文档weixin.txt,添加适当内容后写入文档result.txt。
weixin.txt文档部分内容如下:1-1系统繁忙
0请求成功
40001获取access_token时Secret错误,或者access_token无效
40002不合法的凭证类型
40003不合法的UserID
40004不合法的媒体文件类型
40005不合法的文件类型
40006不合法的文件大小
40007不合法的媒体文件id
40008不合法的消息类型
40013不合法的corpid
40014不合法的access_token
40015不合法的菜单类型
40016不合法的按钮个数
40017不合法的按钮类型
40018不合法的按钮名字长度
40019不合法的按钮KEY长度
40020不合法的按钮URL长度
40021不合法的菜单版本号
...
读文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# -*- coding: utf-8 -*-
'''
Created on 2016/1/12
@filename: main.py
@author: yurixu
@des: Python读写文件
'''
f = open('weixin.txt', 'r')
def ():
#python 按行读取文件
for i in f:
print i
if __name__=="__main__":
main()
f.close()
输出的文件内容为乱码:143010 闇€瑕佸浜庡洖璋冩ā寮?
43011 闇€瑕佷紒涓氭巿鏉?
43013 搴旂敤瀵规垚鍛樹笉鍙
44001 澶氬獟浣撴枃浠朵负绌?
44002 POST鐨勬暟鎹寘涓虹┖
44003 鍥炬枃娑堟伅鍐呭涓虹┖
44004 鏂囨湰娑堟伅鍐呭涓虹┖
乱码原因:源文件weixin.txt编码格式为UTF-8,Windows本地默认编码格式为GBK,所以直接在控制台打印输出字符串就会产生乱码。
解决方法:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22# -*- coding: utf-8 -*-
'''
Created on 2016/1/12
@filename: main.py
@author: yurixu
@des: Python读写文件
'''
import sys
#获取当前系统编码
type = sys.getfilesystemencoding()
f = open('weixin.txt', 'r')
def ():
#python 按行读取文件
for i in f:
print i.decode("UTF-8").encode(type)
if __name__=="__main__":
main()
f.close()
输出:143006 需要订阅
43007 需要授权
43008 需要支付授权
43010 需要处于回调模式
43011 需要企业授权
43013 应用对成员不可见
写文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28# -*- coding: utf-8 -*-
'''
Created on 2016/1/12
@filename: main.py
@author: yurixu
@des: Python读写文件
'''
import sys
type = sys.getfilesystemencoding()
f = open('weixin.txt', 'r')
w = open('result.txt', 'w')
def ():
#python 按行读取文件
for i in f:
a = i.decode("UTF-8").encode(type)
#python 分割字符串
b = a.split()
#python 拼接字符串
w.write("'"+b[0]+"'"+" => "+"'"+b[1]+"',")
w.write('n')
if __name__=="__main__":
main()
f.close()
w.close()
weixin.txt每行包含两列内容:errCode和errMsg,写入文件前需要对两列分别处理,所以需要使用split方法进行字符串分割,生成元组b,再对元组各元素进行字符拼接。由于write方法不自动添加换行符,所以在每行结尾要手动添加换行符n,在main结束后关闭文件。
最终写入的文件内容:1'?-1' => '系统繁忙',
'0' => '请求成功',
'40001' => '获取access_token时Secret错误,或者access_token无效',
'40002' => '不合法的凭证类型',
'40003' => '不合法的UserID',
'40004' => '不合法的媒体文件类型',
'40005' => '不合法的文件类型',
'40006' => '不合法的文件大小',
'40007' => '不合法的媒体文件id',
'40008' => '不合法的消息类型',
'40013' => '不合法的corpid',
...
生成的result.txt可以直接拿来添加array头尾,放置到Yii配置文件中使用。
Python简单读写文件就介绍到这里,关于Python如何读写Excel文件,我将在Python文件处理(二)读写Excel文件中介绍。
—- 完结 —-