如何在python中检查文件的字符数

时间:2010-01-06 05:00:43

标签: python size character

我有一个python代码,可以读取很多文件。 但是有些文件非常大,因为我在其他代码中有错误。 我想要一种方法,我可以检查文件的字符数,以便我避免阅读那些非常大的文件。 感谢。

5 个答案:

答案 0 :(得分:7)

os.stat(filepath).st_size

假设'字符'表示字节。 ETA:

  

我需要总字符数,就像命令'wc filename'给我unix

一样

在哪种模式? wc就可以给你一个行,字和字节数(与stat相同),而不是Unicode字符。

一个开关-m,它将使用语言环境的当前编码将字节转换为Unicode然后计算代码点:这真的是你想要的吗?如果您要查找的文件太长,那么解码为Unicode没有任何意义。如果你真的必须:

import sys, codecs

def getUnicodeFileLength(filepath, charset= None):
    if charset is None:
        charset= sys.getfilesystemencoding()
    readerclass= codecs.getReader(charset)
    reader= readerclass(open(filepath, 'rb'), 'replace')
    nchar= 0
    while True:
        chars= reader.read(1024*32)  # arbitrary chunk size
        if chars=='':
            break
        nchar+= len(chars)
    reader.close()
    return nchar

sys.getfilesystemencoding()获取区域设置编码,再现wc -m的内容。如果您自己知道编码(例如'utf-8'),那么请将其传入。

我认为你不想这样做。

答案 1 :(得分:7)

如果您希望给定特定编码的文本文件的unicode 字符计数,则必须读入整个文件才能执行此操作。

但是,如果您希望给定文件的字节计数,则需要os.path.getsize(),只需要对文件执行stat即可操作系统有stat()或等效的调用(所有Unix和Windows都有)。

答案 2 :(得分:5)

尝试

import os
os.path.getsize(filePath)

获取文件的大小,以字节为单位。

答案 3 :(得分:4)

os.path.getsize(path) 
  

返回路径的大小(以字节为单位)。   如果文件没有,则引发os.error   存在或无法访问。

答案 4 :(得分:2)

替代方式

f=open("file")
os.fstat( f.fileno() ).st_size
f.close()