![](/img/trans.png)
[英]Kedro: How to pass multiple same data from a directory as a node input?
[英]How to input multiple files from a directory
首先,我最近剛接觸Unix,我試圖在線找到我的問題的解決方案,但我找不到解決方案。
所以我通過我的Unix終端運行Python
,我有一個解析xml
文件的程序,並將結果輸入到.dat
文件中。
我的程序有效,但我必須單獨輸入每個xml
文件(數量超過50
)。
例如:
clamshell: python3 my_parser2.py 'items-0.xml' 'items-1.xml' 'items-2.xml' 'items-3.xml' .....`
所以我想知道是否可以從目錄中讀取,其中包含我的所有文件到我的程序中? 而不是單獨鍵入所有xml
文件名並以這種方式運行程序。
非常感謝任何幫助。
python3 my_parser2.py *.xml
應該可以工作。
shell本身可以擴展通配符,因此,如果您不關心輸入文件的順序,只需使用:
python3 my_parser2.py items-*.xml
如果數字順序很重要(您想0..9
, 10-99
等的順序,您可能需要稍微調整通配符的參數,以保證這一點,如用:
python3 my_parser2.py items-[0-9].xml items-[1-9][0-9].xml items-[1-9][0-9][0-9].xml
除了命令行選項之外,您可以在腳本中使用glob
並繞過命令參數的需要:
import glob
filenames = glob.glob("*.xml")
這將返回運行腳本的目錄中的所有.xml
文件(作為文件名)。
然后,如果需要,您可以使用基本循環遍歷所有文件:
for file in filenames:
with open(file, 'r') as f:
# do stuff to f.
import glob
listOffiles = glob.glob('directory/*.xml')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.