python

您所在的位置:网站首页 parserargument python

python

2023-04-10 22:27| 来源: 网络整理| 查看: 265

У меня есть скрипт 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