當您運行Python代碼時,如何從命令行獲取文件名?就像如果你的代碼打開一個文件並讀取線,但該文件變化的,只要你運行它,怎麼對你說:PYTHON從命令行獲取文件
python code.py input.txt
這樣的代碼分析「input.txt中」?在實際的Python代碼中你需要做什麼?我知道,這是一個非常模糊的問題,但我不知道如何更好地解釋它。
當您運行Python代碼時,如何從命令行獲取文件名?就像如果你的代碼打開一個文件並讀取線,但該文件變化的,只要你運行它,怎麼對你說:PYTHON從命令行獲取文件
python code.py input.txt
這樣的代碼分析「input.txt中」?在實際的Python代碼中你需要做什麼?我知道,這是一個非常模糊的問題,但我不知道如何更好地解釋它。
import sys
filename = sys.argv[-1]
這將得到命令行上的最後一個參數。如果沒有參數傳遞,它將是腳本名稱本身,因爲sys.argv[0]
是正在運行的程序的名稱。
一個不錯的選擇是fileinput
模塊,它將從命令行抓取任何或所有文件名,然後將內容作爲一個大文件提供給腳本。
import fileinput
for line in fileinput.input():
process(line)
更多信息here。
只需使用基本的命令raw_input
聲明輸入文件名字符串現在
inFile = ""
inFile = raw_input("Enter the input File Name: ")
您可以通過open(inFile,'w')
使用argparse使用打開該文件是相當直觀:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--file", "-f", type=str, required=True)
args = parser.parse_args()
現在名稱文件位於:
args.file
你只需要有點不同運行程序:
python code.py -f input.txt
除了什麼是已有的答案中提到,有一個其他替代依託使用Command Line Interface Creation Kit (Click)。當我發佈這個答案時,它的最新穩定版本是version 6。 official documentation有關於如何處理文件並將它們作爲命令行參數傳遞的示例。
完全錯過了問題的要點 – JPCF