簡體   English   中英

如何僅使用 Windows 命令行在 Python 模塊中運行 function?

[英]How do I run a function in a Python module using only the Windows command line?

澄清一下,我正在編寫的 Python 模塊是一個 self-written.py 文件(名為converter ),而不是 Python 庫的標准文件。

無論如何,我想以某種方式重載我的 function 以便輸入

 converter file_name

將文件名發送到

 def converter(file_name):
    # do something

我一直在通過 Google 和 StackOverflow 進行廣泛搜索,但找不到任何不需要使用特殊字符(如 $)或命令行選項(如 -c)的內容。 有誰知道如何做到這一點?

你可以使用PyInstaller 之類的東西從你的 py 文件中創建一個 exe。

要使用 python 中的參數:

import sys

if __name__ == "__main__":
    converter(sys.argv[1])

您可以輸入 windows shell:

python converter.py file_name.txt

將 arguments 提供給 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

如果您正在執行許多復雜的命令行選項,我建議您使用內置的argparse (適用於 2.7/3.2+)或argparse on pypi (適用於 2.3+)。

我能想到的唯一方法是創建一個同名的批處理文件,並在其中使用提供的參數調用您的 python 腳本。

使用批處理文件,您不必指定擴展名 (.bat),因此它可以讓您更接近您想要的位置。

此外,無需任何編譯.py即可。 exe ,您可以使您的腳本“可執行”,這樣如果您發出類似myscript param param的命令行,系統將搜索myscript.py並為您運行它,就好像它是一個.exe.bat文件一樣。

為了實現這一點,請配置您計划運行腳本的機器:

  1. 確保您已設置文件關聯( .py到 python 解釋器,也就是說,如果您在資源管理器中雙擊您的腳本 - 它會被執行)。 通常這由 Python 安裝程序配置。
  2. 編輯COMSPEC環境變量(查看My Computer屬性)以包含.PY擴展名以及.EXE.COM等。
  3. Start菜單啟動一個新的cmd.exe以使用變量的新值。 任何程序的舊實例只會看到舊值。

如果您在同一台機器上運行許多腳本,此設置可能很方便,但如果您將腳本分散到多台機器上,則不那么方便。 在后一種情況下,您最好使用py2exe轉換器將您的應用程序捆綁成一個自給自足的 package(甚至不需要安裝 python)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM