python的read函數
❶ python讀取文本(txt,csv)及相關操作會用到哪些函數
import csv
with open('my.csv') as f:
fcsv = csv.reader(f) # 標題行
for row in fcsv:
# row[0] row[1]
# txt
with open('my.txt') as f:
for line in f: #按行讀取
#f.read() # 讀取所有
pass
❷ Python類似open.read 何時用函數 何時用 函數
open 不會 for ... in 不會 文件讀取貌似只有open(xxx).read()會一次性讀完整個文件內容,其他方式(readlines之類的)都不會,但是corpora.Dictionary 是什麼行為就不清楚了
❸ pandas中read函數的使用
利用Python的pandas數據結構來讀取excel表格的數據,部分代碼如下:
#-*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
catering_data="catering_sale.xls"
data=pd.read_excel(catering_data,index_col=u'日期')
#讀取數據,指定"日期"列為索引列
大多數書上都是這樣寫的,但是在Python2.7上運行時出現錯誤。(沒有在Python3.x版本試過)
出現了如下問題:
這里寫圖片描述
使用help(pd.read_excel)發現參數中有必選參數sheetname,加入到函數中,代碼如下:
#-*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
catering_data="catering_sale.xls"
data=pd.read_excel(catering_data,sheetname=0,index_col=u'日期')
運行成功。
sheetname=0 的意思是:讀取xls文件中的第一個表格。(假設文件中有很多個表格)
另外,也可以將文件轉換成csv格式,就不需要這個參數了。代碼如下:
catering_data="catering_sale.csv"
data=pd.read_csv(catering_data)
❹ python 讀寫後直接read 為什麼本頁代碼給寫入文本了
大概是你別的程序追加寫進去的吧,仔細查代碼,或者全都刪了重開一個新項目再看看。
另外,你組織整個包的代碼文件不夠好,命名、風格等都需要改進。
建議初學的時候用IDLE,不要用這種集成開發環境。
以上。
❺ 請教下 python read(3)的時候,為什麼不是每行顯示三個字元
如圖所示
釋
情
備
這都是每一行的結尾 然而在這3個字後面都有看不見的字元 也就是回車換行符 這符號佔2個字元 所以才有你第2張圖的效果 你可以先替換回車換行符為空 然後再按3個字輸出
❻ Python的各種imread函數在實現方式和讀取速度上有何區別
1. PIL.Image.open
代碼在這里:Pillow/Image.py at 3.1.x · python-pillow/Pillow · GitHub
open() 函數打開圖像,但並不讀入,直到有操作發生。
具體的讀取操作是在 ImageFile.py 寫的。大體流程是先檢測文件類型,整塊地讀入文件內容,然後調用解碼器解碼,做了很多優化,效率應該還是很高的。
2. scipy.ndimage.imread
代碼在這里:scipy/io.py at v0.17.1 · scipy/scipy · GitHub
imread 調用 scipy.misc.pilutil.imread。從名字就能看出來其實調用的還是 Pillow。
根據 pilutil 代碼:scipy/pilutil.py at v0.17.1 · scipy/scipy · GitHub
確實是調用 pil.image.open(),然後返回一個 fromimage()。
3. scipy.misc.imread
misc 的 __init__.py 在這里:scipy/__init__.py at v0.17.1 · scipy/scipy · GitHub
調用的還是 pilutil 中的 imread
相關代碼如下
try:
from .pilutil import *
from . import pilutil
__all__ += pilutil.__all__
del pilutil
except ImportError:
pass
也算是學了一招,從 pilutil 導入其所有函數添加到當前空間,然後又刪除了 pilutil 消除影響。
4. skimage.io.imread
代碼在這里:scikit-image/_io.py at master · scikit-image/scikit-image · GitHub
是通過插件 plugin 來讀入不同的文件,而且會試用幾個不同的 plugins 來找到合適的。
使用 call_plugin 來調用,代碼在這里:scikit-image/manage_plugins.py at master · scikit-image/scikit-image · GitHub
可以根據如下代碼查看插件調用的優先順序
# For each plugin type, default to the first available plugin as defined by
# the following preferences.
preferred_plugins = {
# Default plugins for all types (overridden by specific types below).
'all': ['pil', 'matplotlib', 'qt', 'freeimage'],
'imshow': ['matplotlib'],
'imshow_collection': ['matplotlib']
}
plugins 的源代碼在這里:scikit-image/skimage/io/_plugins at master · scikit-image/scikit-image · GitHub。可以看到 pil 的 imread,是用 open 打開圖像之後,再轉換成 ndarray。
5. cv2.imread
這里是調用的 CV::imread(),代碼在這里:opencv/loadsave.cpp at master · opencv/opencv · GitHub。一般來說 C\C++ 的實現,應該比 python 速度快一點。
6. matplotlib.image.imread
matplotlib 的文檔裡面說,matplotlib 原生只可以讀取 PNG 文件,有 PIL 的時候,可以讀取其他類型的文件。如果使用 URL 打開在線圖像文件,需要符合 PIL 的文檔要求。
matplotlib.image.imread 的代碼在這里:matplotlib/image.py at master · matplotlib/matplotlib · GitHub。matplotlib 的原生 PNG 讀取和寫入,是用 C 實現的,代碼在這里:matplotlib/_png.cpp at master · matplotlib/matplotlib · GitHub。
matplotlib 是先用 pil 的 open 打開圖像,如果格式是 png,就用原生方法打開。相關代碼如下:
handlers = {'png': _png.read_png, }
if format is None:
if cbook.is_string_like(fname):
parsed = urlparse(fname)
# If the string is a URL, assume png
if len(parsed.scheme) > 1:
ext = 'png'
else:
basename, ext = os.path.splitext(fname)
ext = ext.lower()[1:]
elif hasattr(fname, 'name'):
basename, ext = os.path.splitext(fname.name)
ext = ext.lower()[1:]
else:
ext = 'png'
else:
ext = format
if ext not in handlers:
im = pilread(fname)
if im is None:
raise ValueError('Only know how to handle extensions: %s; '
'with Pillow installed matplotlib can handle '
'more images' % list(six.iterkeys(handlers)))
return im
聲明的處理器只有 png。如果是 png 文件,調用 _png.read_png。如果不是 png 直接使用 pilread(就是用 pil 的 Image.open 然後 pil_to_array)。
matplotlib 的源碼確實比較復雜,一大部分主體是用 C 寫的,改動很激進,功能更新猛烈。
❼ python readlines函數
你要知道readline的用法是按行讀取,和你有沒有 ";" 號無關
❽ python3用read()函數讀取文件兩次,就變成空字元串了
python在讀取文件的時候是根據游標位置來讀取的。讀一行以後游標位置到了下一行。再來個read又到了下一行。
想要重新從頭開始讀的話用f.seek(0)
將游標位置放到最前面。這樣再f.read()就是第一行的內容
還有個方法是f.tell()
告訴你當前游標的位置。你可以把文件都讀完了以後f.tell()一下看看游標位置
然後再f.seek(0)
再f.tell()一下看看游標位置
with open() as f跟你截圖用的差不多,只不過這種方式不用f.close(),會自動關閉文件句柄。不過也可以手動關閉文件句柄
❾ python中open函數
f=open(r'C:UsersdellDesktop1.txt','r')
print(f.read())
文件打開操作只是打開了文件,還需要讀取文件內容才能顯示文件內容