当前,我有一个包含许多文件和唯一文本的文件夹 基本上有 1.txt 2.txt 3.txt
1.txt的包含为111111 2.txt的包含为222222 3.txt的包含为333333
我有一个如下脚本,用于打印以下txt文件的内容
from os import system
import sys
text=sys.argv[1]
def loop():
system("cat /root/Music/loop/"+text+".txt")
if __name__ == "__main__":
loop()
所以现在当我输入python loop.py 1时 它将打印并显示 111111
当我输入python loop.py 2时 它将打印并显示 222222
我的问题是如何添加标记以全部打印? 例如python loop.py --all
111111
222222
333333
答案 0 :(得分:1)
您可以使用argparse
以结构化的方式解析命令行参数:
from os import system
import sys
import argparse
import os
base_dir = '/root/Music/loop'
parser = argparse.ArgumentParser()
parser.add_argument('--all', action='store_true')
parser.add_argument('files', nargs='*')
args = parser.parse_args()
if args.all:
files = os.listdir(base_dir)
else:
files = args.files
def print_file(path):
system('cat ' + path)
if __name__ == "__main__":
for file in files:
print_file(os.path.join(base_dir, file))