python |
您所在的位置:网站首页 › parserargument › python |
У меня есть скрипт Python, который использует argparse для анализа аргументов командной строки, ниже приведен пример из него. #main.py import argparse from my_folder.myscript import foo #...lines of code def main(): parser = argparse.ArgumentParser() parser.add_argument( "--test", action='store_true', default=None ) args = parser.parse_args() if args.test: foo() if __name__=='__main__': main()И myscript.py равно import pandas as pd def foo(): data = pd.read_excel('file/path/filename.xlsx', usecols = ['col1', 'col2']) print(data) print(data['col1'].tolist())Если я использую: python3 main.py --testЯ получаю желаемый результат. Однако я хотел бы проанализировать путь к файлу .xlsx или любому другому файлу в myscript.py через командную строку, а не в самом файле .py, т.е. python3 main.py --test --infile /file/path/filename.xlsxИ в идеале даже дать дополнительные аргументы, такие как «col1», чтобы напечатать вторую строку. Может ли кто-нибудь предложить, как действовать при попытке проанализировать аргументы в импортированном модуле? python command-line-arguments argparse 0 newstudent 30 Мар 2023 в 15:52 3 Сначала вам нужно заставить ваш модуль фактически принимать аргументы. Сделайте путь аргументом foo, затем вы можете вызывать его из main с помощью foo('file/path/filename.xlsx') или любого другого пути, который вам нужен. – matszwecja 30 Мар 2023 в 15:54 1 Вы можете определить функцию foo, например def foo(filepath):, и сделать что-то вроде data = pd.read_excel(filepath). – Ynjxsjmh 30 Мар 2023 в 16:00 1 ответВам нужно описать, что вы ожидаете от командной строки через другой parser.add_argument. Их может быть несколько. Если вы не кодируете себя, то ваш скрипт никогда не узнает, что вы хотите сделать. -1 Andrej Zacharevicz 30 Мар 2023 в 16:04 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |