首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python读取unicode文件名

Python读取unicode文件名
EN

Stack Overflow用户
提问于 2013-07-02 23:04:37
回答 1查看 5K关注 0票数 2

我是Python新手。我试图使用os.path.getsize()来获取文件的大小。但是,如果文件名不是英文,而是中文、德文、法文等,Python无法识别它,也不返回文件的大小。你能帮我一下吗?如何让Python识别文件的名称并返回这类文件的大小?

例如:文件名为:“2030г.docПоказателиестественногоимиграционногоприростадо”。Path=“C:\xxx\Показателиестественногоимиграционногоприростадо2030г.doc”

我想用os.path.getsize(path)。但是它不识别文件名。你能告诉我我该怎么做吗?

非常感谢!

代码语言:javascript
复制
import codecs,cStringIO

class UnicodeWriter:

        def __init__(self, f, dialect=csv.excel, encoding="utf-8-sig", **kwds):
        self.queue = cStringIO.StringIO()
        self.writer = csv.writer(self.queue, dialect=dialect, **kwds)
        self.stream = f
        self.encoder = codecs.getincrementalencoder(encoding)()
    def writerow(self, row):
        self.writer.writerow([s.encode("utf-8") for s in row])
        data = self.queue.getvalue()
        data = data.decode("utf-8")
        data = self.encoder.encode(data)
        self.stream.write(data)
        self.queue.truncate(0)
    def writerows(self, rows):
        for row in rows:
            self.writerow(row)
EN

回答 1

Stack Overflow用户

发布于 2013-07-03 04:54:04

使用Unicode路径并确保指定源文件保存在:

代码语言:javascript
复制
#python2
#coding: utf8
import os
path = u'Показатели естественного и миграционного прироста до 2030г.doc'
with open(path,'w') as f:
    f.write('hello')
print os.path.getsize(path)

结果:

代码语言:javascript
复制
5

检查文件是否已正确创建:

代码语言:javascript
复制
C:\>dir *.doc
 Volume in drive C has no label.
 Volume Serial Number is CE8B-D448

 Directory of C:\

07/02/2013  09:51 PM                 5 Показатели естественного и миграционного прироста до 2030г.doc
               1 File(s)              5 bytes
               0 Dir(s)  83,018,432,512 bytes free

编辑以回应评论

如果您需要处理许多文件,请使用os.listdir(u'path/to/files') (带有Unicode目录路径),它将读取一个目录并返回Unicode中的文件名。如果需要递归,请使用os.walk(u'path/to/files')

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17437228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档