python讀取文件大小
① python 在不解壓的情況下,怎麼得知壓縮包裡面文件的大小呢
可以使用 tarfile 模塊在不解壓的情況下查看壓縮包里文件的大小,代碼如下:
#coding=utf8
importtarfile
importos
tar=tarfile.open('G:/test/abc.tar.gz','r:gz')
fortiintar:
ifti.isreg():
print(ti.name,ti.size)
② python3中為什麼os.path.getsize()獲取的大小和windows資源管理器里文件大小不一致
os.path.getsize()返回的是path的大小,path如果是一個文件,那麼就是文件大小;如果是文件夾,那麼就是文件夾大小,文件夾大小是指文件夾這個數據結構在文件系統中佔用的大小,NTFS文件系統中一個簇通常是4096位元組,一個文件夾佔用一個簇,所以NTFS中任何一個文件夾的大小都是4096位元組。
③ Python中如何獲取ftp伺服器上的文件大小
這要看你下載用了哪個ftp庫
搜到的代碼
files = ftp.nlst()
for f in files:
print f
④ python 實時檢測文件夾的大小,如果超過設定值,自動清空文件夾,如何
實時檢測我覺得可能沒必要了,周期性檢測倒是不錯,比如每隔30秒檢查一次,除非你一秒鍾就幾十上百兆數據寫入,那就得實時檢測了。
實時監測的話,在while循環里不停的查看文件夾的變化
首寫關於文件夾的大小,據我所知道的python標准庫並沒有提供關於文件夾大小的api或套件,你需要一個一個文件的去遍歷獲取文件的大小累加求和,獲取文件大小可以使用os.stat(文件路徑)。不過最好的方式,我覺得是通過調用系統命令獲取文件夾的大小,這樣就不用寫遞歸方法,獲取你要清空目錄下的文件目錄結構,當然目錄結構簡單的話,遞歸方法都不用寫。不知道你的操作系統是什麼,linux的話可以用
-sh /data/applog/
在python2.7中可以使用commands.getoutput執行上面的命令並獲取到輸出結果
第二就是關於清空文件夾的,你必須保證沒有程序對你要清空的目錄進行訪問,你才能正常的清空,否則,對於在使用中的文件你會清空失敗。清空文件夾你可以使用shutil庫里的rmtree()方法,它不管你文件夾是否有文件或子文件夾,使用它就是一行代碼的事情,如果使用os模塊進行刪除的話你要從最底層文件夾開始刪除。最後你再重新新建這文件夾
上面只是思路,具體使用還得根據你的實際需要來的
如果你要進行周期性檢測的話,可以使用標准庫中的sched庫來開發
⑤ python 二進制讀取文件 如何知道真實的讀取位元組大小
read(100)讀取的結果保存在buff,buff是位元組類型
用len(buff)可以返回讀取位元組的實際長度。
⑥ 如何用python快速讀取幾G以上的大文件
如果你沒那麼大的內存 解決方法有幾個:
使用swap 一次性read()讀取
系統層面分割大文件為數個小於系統內存的小文件,分別讀取
使用python 按數據大小逐塊讀取,使用完數據即釋放該部分內存:
whileTrue:
chunk_data=file_object.read(chunk_size)
ifnotchunk_data:
break
yieldchunk_data
⑦ python如何獲取windows文件屬性的詳細信息
#已知文件名的情況下,可以用這個函數
def getFileInfo(filepath):
info = {}
if os.path.isfile(filepath):
info['TimeCreated'] = os.path.getctime(filepath)
info['TimeModified'] = os.path.getatime(filepath)
info['Size'] = os.path.getsize(filepath)
return info
⑧ Python 讀取文件夾將裡面的圖片處理成想要的大小並保存在個指定位置
fromPILimportImage
importos.path
importglob
defconvertjpg(jpgfile,outdir,width=1280,height=720):
img=Image.open(jpgfile)
new_img=img.resize((width,height),Image.BILINEAR)
new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
forjpgfileinglob.glob("D:/python/*.jpg"):
convertjpg(jpgfile,"D:/newfile")
convertjpg調用時可以有四個參數,如convertjpg(jpgfile,"D:/newfile",800,600)
Image open了jpg用完後要不要close?
⑨ python 一個文件太大+內存裝不下+怎麼讀取 mongo
Python 環境下文件的讀取問題,請參見拙文Python 基礎 —— 文件
這是一道著名的 Python 面試題,考察的問題是,Python 讀取大文件和一般規模的文件時的區別,也即哪些介面不適合讀取大文件。
1. read() 介面的問題
f = open(filename, 'rb')
f.read()12
我們來讀取 1 個 nginx 的日至文件,規模為 3Gb 大小。read() 方法執行的操作,是一次性全部讀入內存,顯然會造成:
MemoryError...12
也即會發生內存溢出。
2. 解決方案:轉換介面
(1)readlines() :讀取全部的行,構成一個 list,實踐表明還是會造成內存的問題;
for line in f.reanlines(): ...1
2
(2)readline():每次讀取一行,
while True:
line = f.readline() if not line: break1
2
3
4
(3)read(1024):重載,指定每次讀取的長度
while True: block = f.read(1024) if not block: break1
2
3
4
- with open(filename, 'rb') as f: for line in f:
- <do something with the line>123
3. 真正 Pythonic 的方法
真正 Pythonci 的方法,使用 with 結構:
對可迭代對象 f,進行迭代遍歷:for line in f,會自動地使用緩沖IO(buffered IO)以及內存管理,而不必擔心任何大文件的問題。
There should be one – and preferably only one – obvious way to do it.