1、使用 open
常規(guī)操作
with open('data.txt') as fp:
content = fp.readlines()
2、使用 fileinput
使用內(nèi)置庫(kù) fileinput
import fileinput
with fileinput.input(files=('data.txt',)) as file:
content = [line for line in file]
3、使用 filecache
使用內(nèi)置庫(kù) filecache,你可以用它來(lái)指定讀取具體某一行,或者某幾行,不指定就讀取全部行。
import linecache
content = linecache.getlines('werobot.toml')
4、使用 codecs
使用 codecs.open
來(lái)讀取
import codecs
file=codecs.open("README.md", 'r')
file.read()
如果你還在使用 Python2,那么它可以幫你處理掉 Python 2 下寫(xiě)文件時(shí)一些編碼錯(cuò)誤,一般的建議是:
在 Python 3 下寫(xiě)文件,直接使用 open
在 Python 2 下寫(xiě)文件,推薦使用 codecs.open,特別是有中文的情況下
如果希望代碼同時(shí)兼容Python2和Python3,那么也推薦用codecs.open
5、使用 io 模塊
使用 io 模塊的 open 函數(shù)
import io
file=io.open("README.md")
file.read()
經(jīng)朋友提醒,我才發(fā)現(xiàn) io.open 和 open 是同一個(gè)函數(shù)
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
6、使用 os 模塊
os 模塊也自帶了 open 函數(shù),直接操作的是底層的 I/O 流,操作的時(shí)候是最麻煩的
>>> import os
>>> fp = os.open("hello.txt", os.O_RDONLY)
>>> os.read(fp, 12)
b'hello, world'
>>> os.close(fp)
審核編輯:湯梓紅
-
模塊
+關(guān)注
關(guān)注
7文章
2718瀏覽量
47561 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4338瀏覽量
62739 -
python
+關(guān)注
關(guān)注
56文章
4798瀏覽量
84810
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論