我在处理具有大量数据的文件时遇到了一些问题。我需要跳过对这些文件执行一些操作。我将文件的数据放入一个变量中。现在我需要获取变量的字节,如果它大于 102400 ,则打印一条消息。
更新:我无法打开文件,因为它存在于 tar 文件中。内容已经被复制到一个名为“数据”的变量中,我能够打印变量数据的内容。我只需要检查它是否超过 102400 字节。
谢谢
import os
length_in_bytes = os.stat('file.txt').st_size
if length_in_bytes > 102400:
print 'Its a big file!'
更新以处理 tarfile 中的文件
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
如果我正确理解了这个问题,那么如果某些输入文件太大,您就想跳过它们。为此,您可以使用os.path.getsize()
:
import os.path
if os.path.getsize('f') <= 102400:
doit();
只需检查字符串的长度,然后:
if len(data) > 102400:
print "Skipping file which is too large, at %d bytes" % len(data)
else:
process(data) # The normal processing
len(data)
如果它是二进制数据,则为您提供以字节为单位的大小。对于字符串,大小取决于使用的编码。
这个答案似乎无关紧要,因为我似乎误解了这个问题,现在已经澄清了。但是,如果有人在使用几乎相同的术语进行搜索时发现了这个问题,那么这个答案可能仍然是相关的:
只需以二进制模式打开文件
f = 打开(文件名,'rb')
读取/跳过一堆并打印下一个字节。我使用相同的方法一次“修复”了无数图像中的第 n 个字节。