【问题标题】:Python copy and paste path file from Windows Explorer into variablePython从Windows资源管理器复制并粘贴路径文件到变量中
【发布时间】:2016-04-26 14:18:19
【问题描述】:

我在 Python3.4 中开发了一个软件,它有一个带有一组变量的配置文件作为输入,其中一些是路径。

文件路径名中的分隔符有问题。 我知道我可以在字符串前面加一个“r”或者使用双反斜杠或斜杠来得到一个原始字符串,但是因为这个软件将被其他用户使用,而一般的只是一个“复制和粘贴” " 伙计,我不希望他们操纵文件名。

所以用户只需从 Windows 资源管理器中复制文件路径并粘贴到配置文件中,如下所示:

path_variable = "C:\Users\home\room\table.txt"

我想写一个函数来修改它以便可以使用。

我该怎么做?如果我以这种方式留下字符串,我会因为 \U...

而得到一个 unicode 错误

非常感谢,

西乔

更新

配置文件不是 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

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    您的配置文件不必用 Python 编写。您可以使用configparser,据我所知,它不会专门解释反斜杠。

    这可能需要对配置文件的逻辑进行一些重新设计。与其直接使用import 语句导入配置文件,不如使用configparser 模块对其进行解析。您可能还需要调整配置文件的语法以匹配 configparser 的预期。

    【讨论】:

    • 感谢您的回答。我更新了一点我的问题以更清楚。我喜欢configparser 的想法,但是,正如你所说,我必须稍微调整一下语法,现在有没有办法避免它?否则我继续configparser
    • @cicciodevoto:您的配置文件一个 Python 文件。如果不是,那么imp 将无法加载它。如果您不喜欢 Python 的全部复杂性,请不要使用它。
    • 是的,你是对的,它是一个 Python 文件,对不起我的错误。好的,谢谢你的建议。
    【解决方案2】:

    您说您的用户是“复制和粘贴”类型的人,但是您让他们将文件位置粘贴到配置文件中。我不知道你的代码,但如果配置文件是在 python 中,你可以添加一行:

    path_variable = input("Enter the path").replace("\\", "\\\\")
    

    Python 将\\ 解释为\,从而解决了您的问题

    这解决了他们复制粘贴到文件中的问题,而是提示他们输入文件路径。

    【讨论】:

    • 感谢您的回答,这是一个很好的解决方案,可以提供更具交互性的脚本,我会牢记未来,但这并不是我现在真正需要的。我更新了问题以更清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 2017-10-30
    相关资源
    最近更新 更多