【问题标题】:how to check the character count of a file in python如何在python中检查文件的字符数
【发布时间】:2010-01-06 05:00:43
【问题描述】:

我有一个可以读取许多文件的 python 代码。 但是有些文件非常大,因此我在其他代码中出现错误。 我想要一种方法来检查文件的字符数,这样我就可以避免阅读那些非常大的文件。 谢谢。

【问题讨论】:

    标签: python size character


    【解决方案1】:
    os.stat(filepath).st_size
    

    假设“字符”是指字节。预计到达时间:

    我需要总字符数,就像命令“wc 文件名”给我的 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”),则将其传入。

    我认为你不想这样做。

    【讨论】:

    • 嗨,鲍勃,我需要总字符数,就像命令 'wc 文件名' 给我的 unix 一样
    • @randeepsp:用其他信息更新您的问题。请勿在 cmets 中添加此类重要信息。
    • 对于字节计数,os.path.getsize(filepath)os.stat(filepath).st_size 更容易记住(感谢@Sapph)
    【解决方案2】:

    如果您希望给定特定编码的文本文件的 unicode 字符计数,则必须读取整个文件才能做到这一点。

    但是,如果您想要给定文件的 byte 计数,则需要os.path.getsize(),只要您的操作系统有@987654323,就只需要在文件上执行stat @ 或等效调用(所有 Unix 和 Windows 都可以)。

    【讨论】:

    • 由于 UTF 编码方案,您的字符可能具有不同的字节数。
    【解决方案3】:

    试试

    import os
    os.path.getsize(filePath)
    

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

    【讨论】:

      【解决方案4】:
      os.path.getsize(path) 
      

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

      【讨论】:

        【解决方案5】:

        另一种方式

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-03-08
          • 1970-01-01
          • 2021-09-14
          • 1970-01-01
          • 2016-05-12
          • 2018-07-21
          • 2013-12-15
          • 2022-12-09
          相关资源
          最近更新 更多