【发布时间】:2013-06-30 12:11:11
【问题描述】:
我是 Python 新手。我正在尝试使用os.path.getsize() 来获取文件的大小。但是,如果文件名不是英文,而是中文、德文、法文等,Python就无法识别,也不返回文件的大小。你能帮我吗?如何让 Python 识别文件名并返回此类文件的大小?
例如:文件名是:“Показатели естественного и миграционного прироста до 2030г.doc”。 path="C:\xxxx\xxx\xxxx\Показатели естественного и миграционного прироста до 2030г.doc"
我想使用os.path.getsize(path)。但它不识别文件名。请您告诉我该怎么办?
非常感谢!
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)
【问题讨论】:
-
这对我来说似乎在 python 中运行良好。但是我正在运行linux。这可能取决于平台(例如仅影响 Windows)。所以我很抱歉,因为我对此无能为力。但是我建议尝试使用转义码,例如“\xd0”代表“П”。
标签: python-2.7 unicode size