Python 不从命令行中提取一个以上的参数
Python not pulling more than one argument from command line
我已经尝试了几种方法,虽然我无法分享我的项目的细节,但我可以将其归结为本质。
我有如下内容
import argparse,sys
parser = argparse.ArgumentParser()
parser.add_argument('password', help='The password')
parser.add_argument('--optionalArg', help='Just an optional arg')
args=parser.parse_args()
print(sys.argv[1])
当 运行 从 Windows 10 PC 安装 Python 3.6.x 时,我得到如下输出:
test.py test --optionalArg myArg
test --optionalArg myArg
我什至尝试直接使用 Python 中的 Argparse 示例并获得类似的行为。
现在,巧合的是在另一台机器上,运行 Windows 10 和 Python 3.6.x 也可以。现在他们有两个次要版本。
我还看到了另一个关于 SO 的问题(虽然在找到它时遇到问题)建议在 HKLR/Applications/python 中确保有一个“%*”,它使第一个参数完全出现在它所在的机器上不起作用。这说明我注意到这个条目在它正在工作的机器上根本不存在。
我知道这可能是注册表问题或与安装有关的其他问题。我正在进一步调查,看看是否可以查明问题所在。
如果有任何其他问题,我会在这里更新。
编辑:
我已将示例代码缩减为仅三行:
import sys
print(sys.argv[1])
print(sys.argv[:1])
仍然输出以下内容:
>argtest.py 1 2 3
1 2 3
['1 2 3']
在有问题的机器上。
好吧,我想通了。
正如 Eryksun 在我的问题和其他问题中指出的那样,注册表中的 .py 应该指向 Python.File。 (特别是 Computer\HKEY_CLASSES_ROOT.py 注册表)
现在很好,很漂亮...如果设置正确的话。因此,当我在有问题的机器上指向那里(从我能看到的一切)时,我在注册表中发现了一个问题,我有“%”而不只是 %
如果我学到了什么,那就是永远不要添加答案中没有明确说明的内容,以免它不起作用。
我已经尝试了几种方法,虽然我无法分享我的项目的细节,但我可以将其归结为本质。
我有如下内容
import argparse,sys
parser = argparse.ArgumentParser()
parser.add_argument('password', help='The password')
parser.add_argument('--optionalArg', help='Just an optional arg')
args=parser.parse_args()
print(sys.argv[1])
当 运行 从 Windows 10 PC 安装 Python 3.6.x 时,我得到如下输出:
test.py test --optionalArg myArg
test --optionalArg myArg
我什至尝试直接使用 Python 中的 Argparse 示例并获得类似的行为。
现在,巧合的是在另一台机器上,运行 Windows 10 和 Python 3.6.x 也可以。现在他们有两个次要版本。
我还看到了另一个关于 SO 的问题(虽然在找到它时遇到问题)建议在 HKLR/Applications/python 中确保有一个“%*”,它使第一个参数完全出现在它所在的机器上不起作用。这说明我注意到这个条目在它正在工作的机器上根本不存在。
我知道这可能是注册表问题或与安装有关的其他问题。我正在进一步调查,看看是否可以查明问题所在。
如果有任何其他问题,我会在这里更新。
编辑:
我已将示例代码缩减为仅三行:
import sys
print(sys.argv[1])
print(sys.argv[:1])
仍然输出以下内容:
>argtest.py 1 2 3
1 2 3
['1 2 3']
在有问题的机器上。
好吧,我想通了。
正如 Eryksun 在我的问题和其他问题中指出的那样,注册表中的 .py 应该指向 Python.File。 (特别是 Computer\HKEY_CLASSES_ROOT.py 注册表)
现在很好,很漂亮...如果设置正确的话。因此,当我在有问题的机器上指向那里(从我能看到的一切)时,我在注册表中发现了一个问题,我有“%”而不只是 %
如果我学到了什么,那就是永远不要添加答案中没有明确说明的内容,以免它不起作用。