首页 > 解决方案 > 如何模拟从 .py 文件到 .pyw 文件的符号链接?

问题描述

我想要 2 个我的 python 脚本副本,一个作为.py扩展名,另一个作为.pyw扩展名(Windows 版本,无控制台)

这允许我运行.py文件并从控制台(从命令行)获取输出并将.pyw文件关联到图形程序。

当然,最糟糕的选择是复制文件,虽然可行,但可维护性会受到影响。

当我使用 clearcase 时,我曾经创建从一个文件到另一个文件的符号链接,但在管理代码库时,符号链接并不是最佳选择。

我可以创建一个在这两种情况下都导入的帮助程序模块以共享最大的源代码,但是在这种情况下我有很多脚本,我想要一个通用的解决方案。

复制整个文件的替代方法是什么?

标签: pythonwindows

解决方案


这是一个不依赖于.py文件内容的通用解决方案。

假设我有一个foo.py文件,并且我想创建一个foo.pwy具有完全相同行为的文件,让我们foo.pyw在同一目录中创建具有此确切内容的文件:

import os

with open(os.path.splitext(__file__)[0]+".py") as f:
    contents = f.read()
exec(contents)

如您所见,名称foo在内容中无处可见。该脚本采用脚本的名称,将扩展名更改为.py,读取并执行它。

通过一些简单的脚本,无论原始文件的内容如何,​​都可以轻松替换所有文件副本.pyw以引用.py具有此确切内容的.py文件。

当我们从 Clearcase 迁移到 git 并且不得不删除符号链接时,这节省了很多麻烦。


推荐阅读