как добавить флаг в питоне - PullRequest
0 голосов
/ 19 сентября 2018

в настоящее время у меня есть папка, которая содержит много файлов и уникальный текст, в основном это 1.txt 2.txt 3.txt

содержание 1.txt равно 111111, содержимое 2.txt равно 222222Содержимое 3.txt - 333333

У меня есть скрипт, как показано ниже, для печати содержимого этого текстового файла, как показано ниже

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

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете использовать 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...