Python 3.x 如何运行包含一些要传递的参数的python脚本文件?

Python 3.x 如何运行包含一些要传递的参数的python脚本文件?,python-3.x,Python 3.x,我有一个包含python代码的模块,我使用以下命令执行它: python script.py \ --eps 12 \ --minpts \ --train \ --predict \ --lower_case \ --input_file data.csv \ --dev_file devdata.csv \ --output_dir /output/ 我只想通过python函数执行上述命令。有什么办法吗?我不知道为什么每个人在这个问题上都有如此大的困难,这是

我有一个包含python代码的模块,我使用以下命令执行它:

python script.py \
  --eps 12 \
  --minpts \
  --train \
  --predict \
  --lower_case \
  --input_file data.csv \
  --dev_file devdata.csv \
  --output_dir /output/

我只想通过python函数执行上述命令。有什么办法吗?

我不知道为什么每个人在这个问题上都有如此大的困难,这是非常清楚的,不幸的是,做你想做的事情也很困难,因为python使用隐式数据类型,这很少见。因此,所有命令行参数都作为字符串传递给python

我会查看以下详细信息:

但是tldr将在python脚本中包含:

import sys

eps = int(sys.argv[sys.argv.index('eps')+1])
minpts = True if '-minputs' in sys.argv else False
…
显然,这并不理想,也不漂亮,但它快速而简单。 或者,您可以使用argparser库:

为用户提供更强大、更友好的解决方案。希望这有帮助

A

编辑: 我缺少“around-eps”命令行参数

import sys
打印“版本为”,sys.version

第一行导入一个名为sys的库,它是system的缩写。它定义了诸如sys.version之类的值,它描述了我们正在运行的Python版本。 此命令告诉安装在计算机中的python解释器从当前目录运行程序sys-version.py

这里有另一个脚本,它做了一些更有趣的事情:importsys 打印'sys.argv is',sys.argv

我不太清楚你在找什么。您是在问如何从Python中执行该CLI命令吗?您好@gliddud,谢谢您的回答。是的,我希望在python代码中执行CLI。如果将脚本作为适当的模块,导入它,并调用相关函数,那么它的副本将更简单、更高效。请允许我建议您阅读并且?eps在第3行中没有定义。您所说的隐式数据类型是什么意思?鸭子打字?这与命令行参数有什么关系?确切地说,任何语言的任何程序中的任何命令行参数都是作为字符串传递的。通过将字符串转换为正确的类型/打开指定的文件/等等,可以解析并适当地存储字符串。您还希望命令行如何解释其他特定于语言的对象?我已经修复了错误,现在应该可以工作了。通过隐式数据类型,我指的是python所做的自动类型转换,例如,当您说a=1时,它会自动假定a是整数。这是相关的,因为只使用python的用户可能不知道这是不常见的,因此可能希望控制台将参数-eps 12作为[str:eps,int:12]传递给python。这如何回答这个问题?这似乎是从或类似的东西中提出来的。剽窃并不违反这里的规定,但绝对不酷。请将任何引用的材料放在块报价中,并引用您的来源。