Python2 / Windows7:打开包含德语变音符号的文件名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python2 / Windows7:打开包含德语变音符号的文件名相关的知识,希望对你有一定的参考价值。
我正在尝试打开一个文件,该文件的文件名是通过在附加ttk.Entry
的Tkinter.StringVar
中输入来创建的。
如果我通过在另一个条目中键入相同的文件名来再次尝试open()
文件,如果我使用德语'Umlaute'则会失败。
我从utf-8
的.get()
-Method获得了一个StringVar
编码的字符串。
当我列出当前工作目录中的文件时,它们不是utf-8
编码的。 (我正在使用Windows 7!)
怎么处理?
答案
# -*- coding: utf-8 -*-
import Tkinter as tk
import ttk
import sys
import os
from pprint import pprint
import pickle
class TestApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.varFilename = tk.StringVar()
self.etyFilename = ttk.Entry(master=self, textvariable=self.varFilename)
self.frmBtn = ttk.Frame(master=self)
self.btnSave = ttk.Button(master=self.frmBtn, text='Save',
command=self.save)
self.btnOpen = ttk.Button(master=self.frmBtn, text='Open',
command=self.openFile)
self.etyFilename.grid(row=0, column=0, sticky=tk.EW, padx=3, pady=3)
self.frmBtn.grid(row=1, column=0, sticky=tk.EW)
self.btnSave.grid(row=0, column=0, sticky=tk.SE, padx=3, pady=3)
self.btnOpen.grid(row=0, column=1, sticky=tk.SE, padx=3, pady=3)
self.mainloop()
def save(self, *args):
someData = {'foo': 'bar'}
filename = self.varFilename.get()
try:
with open(filename, 'wb') as f:
pickle.dump(someData, f)
except IOError, e:
print e
sys.exit(1)
def openFile(self, *args):
filename = self.varFilename.get()
print filename
print 'Files in cwd:'
pprint(os.listdir(os.getcwd()))
try:
with open(filename, 'rb') as f:
someData = pickle.load(f)
print someData
except IOError, e:
print e
sys.exit(1)
TestApp()
以上是关于Python2 / Windows7:打开包含德语变音符号的文件名的主要内容,如果未能解决你的问题,请参考以下文章
Windows7 下python3和python2同时 安装python3和python2
Windows7 --下python3和python2同时 安装python3和python2
无法使用C编译python包。错误2 - 无法打开包含文件:'alloca.h'?