跳转至

文件

读写

open() 是 Python 自带的函数,用于读写文件。

with open('/home/ws/some/file.md', 'r') as f:
    content = f.read()

模式:

  • 读写
    • r:read,读(默认),文件不存在则报错
    • w:write,写,先清空文件,文件不存在则创建文件
    • a:append,续写,不清空文件,文件不存在则创建文件,默认在原文后面接着写,也可以在指定位置开始写
    • x:create,创建,若文件已存在则报错
  • +:读且写,这个不能单独存在,要加在 rwax 后面
    • r+w+ 区别是 w+ 会清空文件,都是从头写
    • r+a+ 区别是 a+ 从后面开始写
  • 文本/二进制
    • b:二进制模式
    • t:文本模式(默认)

路径 Path

os.pathpathlib 都可以处理路径。pathlib 是面对对象的。

os.path

>>> from os.path import *
>>> p = '/home/ws/simple.file.json'
>>> abspath(p)  # 绝对路径
'C:\\home\\ws\\simple.file.json'
>>> basename(p)  # 文件名
'simple.file.json'
>>> dirname(p)  # 目录
'/home/ws'
>>> join('anything', p)  # 拼接两个路径
'/home/ws/simple.file.json'
>>> join('c:', p)
'c:/home/ws/simple.file.json'
>>> join('c:\\', p)
'c:/home/ws/simple.file.json'
>>> join(p, '.js')
'/home/ws/simple.file.json\\.js'
>>> split(p)  # 目录 + 文件名
('/home/ws', 'simple.file.json')
>>> splitdrive(p) # 硬盘名 + 路径
('', '/home/ws/simple.file.json')
>>> splitext(p)  # 路径 + 扩展名
('/home/ws/simple.file', '.json')

pathlib

>>> from pathlib import Path
>>> Path(p)  # 自动构建路径
WindowsPath('/home/ws/simple.file.json')
>>> Path(p).name  # 文件/路径名
'simple.file.json'
>>> Path(p).stem  # 文件名除去最后一个扩展名
'simple.file'
>>> Path(p).suffix  # 扩展名
'.json'
>>> Path(p).suffixes  # 所有扩展名
['.file', '.json']
>>> 'c:' / Path(p)  # 直接用 / 符号拼接路径
WindowsPath('c:/home/ws/simple.file.json')
>>> with Path('基础.md').open() as f: f  # Path.open()
...
<_io.TextIOWrapper name='基础.md' mode='r' encoding='cp1252'>