我有一个 wxPython 应用程序。我正在使用 GetValue() 从文本框获取目录路径。
我注意到在尝试将此字符串写入变量时:
"C:\Documents and Settings\tchan\Desktop\InputFile.xls",
python 将字符串视为
'C:\\Documents and Settings\tchan\\Desktop\\InputFile.xls'(“设置”和“用户名”之间缺少斜杠)。
更多信息:
目录路径字符串由“打开文件”对话框创建,该对话框创建一个标准的“选择文件”对话框,您可以在文本处理器的任何“打开”函数中看到它。该字符串被写入文本框,稍后在主线程开始时读取(以防用户想要更改它)。
编辑:我意识到问题出在'\t'被视为“制表符”而不是正常的正斜杠。但是我不知道如何解决这个问题,因为
请您参考如下方法:
我怀疑有一种不同的方法可以从 wx 获取路径来避免这个问题,因为这似乎是一个相当普遍的问题。也就是说,有几种方法可以像您描述的那样修复损坏的路径,方法是将您拥有的字符串转换为原始字符串。
rawpath = "%r" % path
生成的 rawpath 可能会有些困惑,因为它可能会向反斜杠添加额外的转义并给你类似的东西:
"'C:\\\\Documents and Settings\\tchan\\\\Desktop\\\\InputFile.xls'"
虽然 os.path.normpath 似乎会清理它。
import os.path
os.path.normpath(rawpath)
