3.11 Python 读取文件的六种方式¶
第二种:使用 fileinput¶
使用内置库 fileinput
import fileinput
with fileinput.input(files=('data.txt',)) as file:
content = [line for line in file]
第三种:使用 filecache¶
使用内置库 filecache,你可以用它来指定读取具体某一行,或者某几行,不指定就读取全部行。
import linecache
content = linecache.getlines('werobot.toml')
第四种:使用 codecs¶
使用 codecs.open
来读取
import codecs
file=codecs.open("README.md", 'r')
file.read()
如果你还在使用 Python2,那么它可以帮你处理掉 Python 2 下写文件时一些编码错误,一般的建议是:
在 Python 3 下写文件,直接使用 open
在 Python 2 下写文件,推荐使用 codecs.open,特别是有中文的情况下
如果希望代码同时兼容Python2和Python3,那么也推荐用codecs.open
第五种:使用 io 模块¶
使用 io 模块的 open 函数
import io
file=io.open("README.md")
file.read()
经朋友提醒,我才发现 io.open 和 open 是同一个函数
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> (open1:=open) is (open2:=os.open)
False
>>> import io
>>> (open3:=open) is (open3:=io.open)
True
第六种:使用 os 模块¶
os 模块也自带了 open 函数,直接操作的是底层的 I/O 流,操作的时候是最麻烦的
>>> import os
>>> fp = os.open("hello.txt", os.O_RDONLY)
>>> os.read(fp, 12)
b'hello, world'
>>> os.close(fp)