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