使用Python 2.7.5中的os.path.getsize()获取文件大小

时间:2013-07-01 17:53:03

标签: python unicode filesize

我是python的新手。我试图使用os.path.getsize()来获取文件大小。但是,如果文件名不在Englist中,而是在中文,Gemany或法语等中,则Python无法识别它并且不返回文件的大小。你能帮帮我吗?我怎样才能让Python识别文件的名称并返回这些文件的大小?

例如: 该文件的名称是:Показателиестественногоимиграционногоприростадо2030г.doc

path =“C:\ xxxx \ xxx \ xxxx \Показателиестественногоимиграционногоприростадо2030г.doc”

我想用“ os.path.getsize(路径)

但它无法识别文件名。请你告诉我该怎么办?

非常感谢!

2 个答案:

答案 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)