1.文件读写
try:
f = open('/path/t.txt','r')
print(f.read())
finaly:
if f:
f.close()
with open('/path/t.txt','r') as f:
print(f.read())
在python中内置了with语句实现文件关闭,是代码更加简介。上述俩种方法会实现相同的功能。
f = ('/path/g.txt','r',encoding='gbk',errors='ignore')
其中encoding表示文件的编码,erroes表示遇到编码错误的处理方法。当然,最简单的方法就是直接忽略。
字符 | 含义 |
---|---|
r | 读取文本文件 |
rb | 读取二进制文件 |
w | 写入文本文件 |
wb | 写入二进制文件 |
a | 以追加的方式写入 |
2.StringIO和BytesIO
StringIO
在内存中读写str
from io import StringIO
f = StringIo()
f.write('hello')
f.write(' ')
f.write('world!')
print(f.getvalue())
#hello world!
from io import StringIO
f = StringIo('hellio\n Hi')
while true:
s = f.readline() == ' '
if s == ' ':
break
else
print(s.strip())
BytesIO
BytelsIO用于操作二进制数据
from io import BytesIO
f = BytesIO()
f.write('中文'.encode('utf-8'))
print(f.getvalue())
# b'\xe4\xb8\xad\xe6\x96\x87'
f.read();
# b'\xe4\xb8\xad\xe6\x96\x87'
操作文件和目录
python内置的os模块可以直接调用操作系统提供的接口函数。
import os
os.name
'posix' #代表Linux,Unix,Mac OS X
'nt' #Windows
os.uname()
#获取详细的系统信息,Windows系统不支持
环境变量
操作系统中定义的环境变量保存在os.environ中
os.environ获取某个环境变量值使用os.environ.get('key')
os.environ.get('key'):
#'C:\\Windows'
操作文件和目录
#查看当前目录的绝对路径
os.path.abspath('.')
#表示完整的路径
os.path.join('/Users/michael','testdir')
#创建目录
os.mkdir( '/Users/michael','testdir')
#删除目录
os.rmdir( '/Users/michael','testdir')
注意:俩个路径合成一个时使用os.path.join()函数,不要使用简单的字符串拼接
os.path.join()在Linux/Unix/Mac和在windows下返回的结果不一样。
os.path.split( '/Users/michael/file.txt')
#拆分路径,后一部分为最后级别的目录或文件名
os.rename('test.txt','test.py')
#重命名
os.remove('test.py')
#删掉文件
遗憾的是os模块中不存在复制函数,但shutil中提供了copyfile()函数。
用python的特性过滤文件
[x for x in os.listdir('.') if os.path.isdir(x)]
['.lein','.local','.m2','.npm', '.ssh','.Trash','.vim', 'Applications', 'Deskt op',...]
列出所有的.py文件
[x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='. py']
['apis.py', 'config.py','models.py','pymonitor.py',‘test_db.py','urls.py','wsg iapp.py']
网友评论