我在Python3.4中开发了一个软件,它输入一个包含一组变量的配置文件,其中一些是路径。
我的文件路径名中的分隔符有问题。 我知道我可以在字符串前放一个“r”或者使用双反斜杠或斜杠来生成一个原始字符串,但是因为这个软件会被其他用户使用而且普通的只是一个“复制和粘贴” “伙计,我不希望他们操纵文件名。
因此,用户只需从Windows资源管理器中复制文件路径并粘贴到配置文件中,例如:
path_variable = "C:\Users\home\room\table.txt"
我想编写一个修改它的函数,以便可以使用。
我该怎么办?如果我以这种方式离开字符串,我会因为\ U ...
而获得unicode错误非常感谢,
Ciccio
更新
配置文件不是python文件,只是变量中的.txt文件及其值:
var_name = var_val
path_variable = "C:\Users\home\room\table.txt"
height = 20
plot_write_variable = ["y", "n"]
在我完成GUI之前,这只是一个临时解决方案。这个文件必须非常容易理解,并且必须由不具备Python或编程知识的人使用该软件。最终用户只需更改变量值并单击可执行文件即可运行程序,而不是其他任何内容。出于这个原因,我想尽可能避免使用任何python命令。
要读取配置文件,我使用此功能:
import imp
def read_inputFile(path):
file = open(path)
variables = imp.load_source('data', '', file)
file.close()
return variables
答案 0 :(得分:0)
您的配置文件不必用Python编写。你可以使用configparser
,据我所知,它并没有特别解释反斜杠。
这可能需要对配置文件的逻辑进行一些重新处理。您可以使用import
模块解析它,而不是使用configparser
语句直接导入配置文件。您可能还需要调整配置文件的语法以匹配configparser
期望的内容。
答案 1 :(得分:0)
您说您的用户是"复制并粘贴"有点家伙,但你有他们将文件位置粘贴到配置文件中。我不知道你的代码,但如果配置文件是python,你可以添加一行:
path_variable = input("Enter the path").replace("\\", "\\\\")
Python将\\
解释为\
,这可以解决您的问题
这解决了将它们复制粘贴到文件中的问题,而是提示它们输入文件路径。