为了澄清,我正在编写的Python模块是一个自编写的.py文件(名为 converter ),而不是Python库标准的文件。
无论如何,我想以某种方式重载我的功能,以便输入
converter file_name
会将文件名发送到
def converter(file_name):
# do something
我一直在广泛搜索Google和StackOverflow,但找不到任何不需要使用特殊字符(如$)或命令行选项(如-c)的内容。有谁知道怎么做?
答案 0 :(得分:2)
您可以使用PyInstaller之类的东西来创建py文件中的exe。
在python中使用参数:
import sys
if __name__ == "__main__":
converter(sys.argv[1])
答案 1 :(得分:1)
您可以输入Windows shell:
python converter.py file_name.txt
将参数提供给python中的sys.argv
列表。所以要访问它们:
import sys
sys.argv[0] # this will be converter.py
sys.argv[1] # this will be file_name.txt
在您要运行的文件的底部,添加:
if __name__ == "__main__":
converter(sys.argv[1])
要有第二个参数:
python converter.py file_name1.txt file_name2.txt
这将是结果:
import sys
sys.argv[0] # this will be converter.py
sys.argv[1] # this will be file_name1.txt
sys.argv[2] # this will be file_name2.txt
如果您正在执行许多复杂的命令行选项,我建议使用类似the builtin argparse
(适用于2.7 / 3.2 +)或argparse
on pypi(适用于2.3+)的内容。
答案 2 :(得分:0)
我能想到的唯一方法是创建一个同名的批处理文件,并在其中使用提供的参数调用python脚本。
使用批处理文件,您不必指定扩展名(.bat),因此它可以让您更接近您想要的位置。
答案 3 :(得分:0)
此外,如果没有任何编译.py
。exe
,您可以使脚本“可执行”,这样如果您发出myscript param param
之类的命令行,系统将搜索{ {1}}并为您运行,就像它是myscript.py
或.exe
文件一样。
要实现此目的,请配置计划运行脚本的计算机:
.bat
到python解释器,也就是说,如果您在资源管理器中双击您的脚本 - 它将被执行)。通常,这由Python安装程序配置。.py
环境变量(查看COMSPEC
内部属性)以包含My Computer
扩展名以及.PY
,.EXE
等。.COM
菜单开始新的cmd.exe
以使用变量的新值。任何程序的旧实例都只会看到旧值。如果您在同一台计算机上运行许多脚本,则此设置可能很方便,如果您将脚本分散到许多计算机上,则不那么方便。在后一种情况下,您最好使用py2exe
转换器将您的应用程序捆绑到一个自给自足的包中(甚至不需要安装python)。