【问题标题】:Obtain File size with os.path.getsize() in Python 2.7.5在 Python 2.7.5 中使用 os.path.getsize() 获取文件大小
【发布时间】:2013-07-01 17:53:03
【问题描述】:

我是 python 新手。我正在尝试使用 os.path.getsize() 来获取文件大小。但是,如果文件名不是英文的,而是中文、日文、法文等,Python 无法识别,也不返回文件的大小。你能帮我吗?如何让 Python 识别文件名并返回此类文件的大小?

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

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

我想使用” os.path.getsize(路径)

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

非常感谢!

【问题讨论】:

    标签: python unicode filesize


    【解决方案1】:

    使用 Unicode 文件名,让 Python 将代码点编码为适合您系统的正确编码。

    或者,自己检测文件系统编码,并确保在将这些文件名传递给os.path.getsize() 函数时使用该特定编码。

    如果您还不知道 Unicode 是什么,或者它与编码有何关系,我建议您阅读:

    在您继续之前。

    如果您在源代码中指定文字字符串,则需要确保已指定用于保存源代码的编解码器,并使用 unicode 文字:

    # -*- coding: utf-8 -*-
    
    path = u"C:\xxxx\xxx\xxxx\Показатели естественного и миграционного прироста до 2030г.doc"
    

    指定您以 UTF-8 格式保存源代码,并且 path 变量应包含 Unicode 字符串(注意 u'' 字符串文字)。

    【讨论】:

    • 您能告诉我如何将文件名转换为 unicode 文件名吗?
    • 这个问题太笼统了;您需要添加示例,说明您现在拥有什么、如何获得这些名称、哪些有效,哪些无效。
    • 如果可能的话,你能看看我编辑过的问题吗?非常感谢!
    【解决方案2】:

    你可以用这段代码解决你的问题:

    import codecs
    
    path="C:\xxxx\xxx\xxxx\Показатели естественного и миграционного прироста до 2030г.doc"
    
    path=codecs.decode(path,'utf8') 
    os.path.getsize(path)
    

    【讨论】:

      猜你喜欢
      • 2011-09-29
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 2013-06-27
      • 2015-10-15
      • 1970-01-01
      相关资源
      最近更新 更多