我正面臨一些大數據文件的問題。 我需要跳過對這些文件執行一些操作。 我把文件的數據變成一個變量。 現在我需要獲取變量的字節,如果它大於102400,則打印一條消息。如何獲得python中的變量的字節數,就像wc -c在unix中給出的一樣
更新:我無法打開文件,因爲它存在於tar文件中。 內容已被複制到名爲'data'的變量中 我可以打印變量數據的內容。我只需要檢查它是否有超過102400字節。
感謝
我正面臨一些大數據文件的問題。 我需要跳過對這些文件執行一些操作。 我把文件的數據變成一個變量。 現在我需要獲取變量的字節,如果它大於102400,則打印一條消息。如何獲得python中的變量的字節數,就像wc -c在unix中給出的一樣
更新:我無法打開文件,因爲它存在於tar文件中。 內容已被複制到名爲'data'的變量中 我可以打印變量數據的內容。我只需要檢查它是否有超過102400字節。
感謝
只是檢查字符串的長度,則:
if len(data) > 102400:
print "Skipping file which is too large, at %d bytes" % len(data)
else:
process(data) # The normal processing
這個答案似乎是無關緊要的,因爲我似乎誤解了這個問題,目前已得到澄清。但是,如果有人發現了這個問題,同時用幾乎相同的字詞進行搜索,這個答案可能仍然是相關的:
只是以二進制方式打開文件
F =開放(文件名,「RB」)
讀取/跳過一堆並打印下一個字節。我使用了同樣的方法在一張zillion圖像中「修復」第n個字節。
import os
length_in_bytes = os.stat('file.txt').st_size
if length_in_bytes > 102400:
print 'Its a big file!'
更新,以處理文件的tar文件
import tarfile
tf = tarfile.TarFile('foo.tar')
for member in tarfile.getmembers():
if member.size > 102400:
print 'It's a big file in a tarfile - the file is called %s!' % member.name
我只是更新了這個問題。萬分感謝。 – randeepsp 2010-01-07 12:58:02
@randeepsp我已更新示例以顯示使用tarfiles的示例 – 2010-01-07 13:05:50
這比檢查len(數據)更好,因爲它完全跳過讀取大數據時的數據。 – 2010-01-07 15:09:58
如果我理解正確的問題,你想,如果他們太大跳過某些輸入文件。對於這一點,你可以使用os.path.getsize()
:
import os.path
if os.path.getsize('f') <= 102400:
doit();
len(data)
給你以字節爲單位的大小,如果是二進制數據。對於字符串,大小取決於所使用的編碼。
我是一個新手,因此在巨大的代碼中感到困惑。謝謝 – randeepsp 2010-01-07 13:07:32
如果這是一個python問題,爲什麼你將它標記爲C? – 2010-01-07 12:47:51
我懷疑他試圖標記爲'wc -c' – 2010-01-07 13:05:39