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