我是python的新手。我试图使用os.path.getsize()来获取文件大小。但是,如果文件名不在Englist中,而是在中文,Gemany或法语等中,则Python无法识别它并且不返回文件的大小。你能帮帮我吗?我怎样才能让Python识别文件的名称并返回这些文件的大小?
例如: 该文件的名称是:Показателиестественногоимиграционногоприростадо2030г.doc
path =“C:\ xxxx \ xxx \ xxxx \Показателиестественногоимиграционногоприростадо2030г.doc”
我想用“ os.path.getsize(路径)
但它无法识别文件名。请你告诉我该怎么办?
非常感谢!
答案 0 :(得分:1)
使用Unicode文件名,让Python将代码点编码为适合您系统的正确编码。
或者,自己检测文件系统编码,并确保文件名在将这些文件名传递给os.path.getsize()
函数时使用该特定编码。
如果你还不知道Unicode是什么,或者它与编码有什么关系,我建议你阅读:
继续之前。
如果要在源代码中指定文字字符串,则需要确保已指定用于保存源代码的编解码器,并使用unicode文字:
# -*- coding: utf-8 -*-
path = u"C:\xxxx\xxx\xxxx\Показатели естественного и миграционного прироста до 2030г.doc"
指定您以UTF-8保存源代码,并且path
变量应该包含Unicode字符串(请注意u''
字符串文字)。
答案 1 :(得分:0)
您可以使用以下代码解决问题:
import codecs
path="C:\xxxx\xxx\xxxx\Показатели естественного и миграционного прироста до 2030г.doc"
path=codecs.decode(path,'utf8')
os.path.getsize(path)