ran*_*psp 6 python size character
我有一个python代码,可以读取许多文件.但是有些文件非常大,因为我在其他代码中有错误.我想要一种方法,我可以检查文件的字符数,以便我避免阅读那些非常大的文件.谢谢.
os.stat(filepath).st_size
Run Code Online (Sandbox Code Playgroud)
假设"字符"表示字节.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
Run Code Online (Sandbox Code Playgroud)
sys.getfilesystemencoding()获取语言环境编码,重现什么wc -m.如果您自己知道编码(例如'utf-8'),则将其传入.
我认为你不想这样做.
如果您希望给定特定编码的文本文件的unicode 字符数,则必须读入整个文件才能执行此操作.
但是,如果你想要给定文件的字节数,你需要os.path.getsize(),stat只要你的操作系统有stat()一个或同等的调用(所有的Unix和Windows都可以),它只需要对文件执行一次.