我如何获得python中变量的字节数,就像unix中的wc -c一样

时间:2010-01-07 12:45:38

标签: python tar

我在使用大量数据的文件时遇到了一些问题。 我需要跳过对这些文件执行某些操作。 我将文件的数据转换为变量。 现在我需要获取变量的字节,如果它大于102400,则打印一条消息。

更新:我无法打开文件,因为它存在于tar文件中。          内容已被复制到名为'data'的变量          我能够打印可变数据的内容。我只需要检查它是否超过102400字节。

感谢

5 个答案:

答案 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个字节一次。