PythonCookBook 笔记 chapter-05-文件I/O

open函数及参数点击打开链接

1, 打开文本文件的两种模式

filename = 'file.py'

# 对文本文件的读写rt/wt, 对二进制数据的读写rb/wb
# 离开with语句块后,文件自动关闭
with open(filename, 'rt') as fObj:
    data = fObj.read()
    print(data)

# open要和close配对使用
fObj = open(filename, 'rt')
data = fObj.read()
print(data)
fObj.close()

# 重定向到文件中
with open('new.txt', 'wt') as fObj:
    print('Helloworld', file=fObj)

2, os.path

import os

path = './somefile.txt'
print(os.path.basename(path)) # 文件名
print(os.path.dirname(path)) # 目录名
print(os.path.join('tmp', 'test', os.path.basename(path)))

print(os.path.exists('./somefile.txt')) # 文件是否存在
print(os.path.isfile('./somefile.txt')) # 是否是文件
print(os.path.isdir('./somefile.txt')) # 是否是目录

out:
somefile.txt
.
tmp\test\somefile.txt
True
True
False

3, os.listdir

names = os.listdir('./')
print(names)
pyfiles = [name for name in os.listdir('./') if name.endswith('.py')]
print(pyfiles)

out:
['.idea', 'character.py', 'data.json', 'file.py', 'new.txt', 'somefile.txt', 'splitObj.py', 'tcp_serv.py']
['character.py', 'file.py', 'splitObj.py', 'tcp_serv.py']

4, 临时文件和目录

tempfile.TemporaryFile()

tempfile.TemporaryDirectory()

5, 序列化Python对象

import pickle

data = {'Leon':22, 'Mary':21}
with open('somefile.txt', 'wb') as fObj:
    pickle.dump(data, fObj) # 转储到文件dump

with open('somefile.txt', 'rb') as fObj:
    data = pickle.load(fObj) # 从文件中字节流创建对象
    print(data)


data = {'Leon':212, 'Mary':121}
strData = pickle.dumps(data) # 转储到string
print(strData)
print(pickle.loads(strData)) # 从string中创建对象

out:

{'Leon': 22, 'Mary': 21}
b'\x80\x03}q\x00(X\x04\x00\x00\x00Leonq\x01K\xd4X\x04\x00\x00\x00Maryq\x02Kyu.'
{'Leon': 212, 'Mary': 121}

猜你喜欢

转载自blog.csdn.net/vitas_fly/article/details/80270731