python - 如何模拟从 .py 文件到 .pyw 文件的符号链接?
问题描述
我想要 2 个我的 python 脚本副本,一个作为.py
扩展名,另一个作为.pyw
扩展名(Windows 版本,无控制台)
这允许我运行.py
文件并从控制台(从命令行)获取输出并将.pyw
文件关联到图形程序。
当然,最糟糕的选择是复制文件,虽然可行,但可维护性会受到影响。
当我使用 clearcase 时,我曾经创建从一个文件到另一个文件的符号链接,但在管理代码库时,符号链接并不是最佳选择。
我可以创建一个在这两种情况下都导入的帮助程序模块以共享最大的源代码,但是在这种情况下我有很多脚本,我想要一个通用的解决方案。
复制整个文件的替代方法是什么?
解决方案
这是一个不依赖于.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 并且不得不删除符号链接时,这节省了很多麻烦。
推荐阅读
- python-3.x - 如何将数据框的一列变成其他列名的后缀?
- java - CSP 阻止 Websocket 服务器连接
- javascript - 单击链接时从最近的班级中删除班级
- security - 为外部 Kubernetes 集群流量使用自定义源 IP
- flutter - 'tabs' 小部件的高度问题作为其他小部件的子部件,颤动
- makefile - 使从 makefile 导出环境变量成为可能的解决方法
- c# - .NET Core 5 Postgres 'Npgsql.EntityFrameworkCore.PostgreSQL' 选项:无
- c# - 如何在 C# 中创建 XML 文件并上传到 azure blob
- python - 如何从 pastebin.com 获取句子并将它们放入列表中?
- express - Swagger UI express 在服务器中托管时显示空白页面