Python模块保持文件位置变量更新?

时间:2018-07-12 16:05:45

标签: python python-2.7

我的python脚本中有一个变量,该变量将文件路径保存为字符串。如果要将文件移动到另一个目标,是否可以通过python模块等保持文件路径的更新?

2 个答案:

答案 0 :(得分:0)

简短的回答:不,不能包含字符串。

长答案:如果您只想使用 字符串来记录此文件的位置,则除非您使用其他工具来查找文件的位置,否则可能很不幸。随时记录下来-我不知道这些工具是什么。

您在问题中没有提供太多有关想要此变量用作 的信息;就像@DeepSpace在他的评论中说的那样,如果您要使此String在此程序的不同运行之间遵循文件,那么最好为脚本提供一个参数。但是,如果您希望文件在程序执行过程中的某个时间移动,则可以使用文件对象来跟踪该文件。或者,而不是-而不是将文件路径保留在内存中,而是将文件描述符保留在内存中(您将使用open()函数生成的那种描述符,并且从不关闭该文件,直到程序终止。如果您需要多次读取文件,可以使用seek返回到文件的开头,此问题包括它不是内存安全的,而且绝对不是最佳实践。

答案 1 :(得分:0)

TL; DR

您最好的选择可能是使用@DeepSpace之类的解决方案,其中提到您可以在命令行中使用参数调用脚本,然后强制用户输入有效路径。


这实际上是一个非常好的问题,但是不幸的是,纯粹是 Pythonly ,这是不可能的。

没有python模块能够将变量动态链接到文件系统上的路径。您将需要一个外部脚本或例程,该脚本或例程将更新将保存路径值的任何类型的数据结构。

即使那样,文件名也可能会更改,但位置不会更改。这就是我的意思。

假设您要将文件包装在仅包含该特定文件的文件夹中。由于您现在知道它的位置是固定的(从理论上来说),因此您可以使用另一个python脚本/例程来读取文件名并将其存储在文本文件中。您的其他脚本可能会获得该文件名(考虑到您的例程将定期同步该文件)。但是,一旦文件位置更改,您怎么可能知道它现在在哪里。必须在某处手动对其进行硬编码,以使其具有接近您期望的行为的结果。

请注意,我的示例绝不是解决您的问题的方法。我实际上是在试图强调这种功能的缺点。