在PyCharm中使用sys argv时出现索引错误



当我在cmd中运行脚本时,我使用'sys'模块在命令行中获取文件名作为参数,它按我的意愿运行,但如果我在PyCharm中运行它,它会引发错误Index Error: list index out of range。如何在PyCharm中消除此错误?这是我试图运行的代码:

import sys
def read_lines(file):
list_of_numbers = []
with open(file, mode='r') as read_file:
for number in read_file:
number = number.strip()
list_of_numbers.append(number)
return list_of_numbers
if __name__ == '__main__':
fun = read_lines(sys.argv[1])
print(fun)

当直接从pycharm运行脚本时,它会引发以下错误:

Traceback (most recent call last):
File "D:pythonProjectstest.py", line 10, in <module>
fun = read_lines(sys.argv[1])
IndexError: list index out of range

这可能是因为在PyCharm中运行脚本时没有提供任何参数。

您可以运行以下脚本来打印所有参数:

import sys
if __name__ == '__main__':
print(sys.argv)

如果你在命令行中运行它,比如这个

python3 test.py filename.txt

你应该输出

['test.py', 'filename.txt']

(第一个参数是脚本的名称(。在PyCharm中,还必须指定filename.txt作为参数。否则,你只会得到

['test.py']

这意味着不存在元素1,因此不存在IndexError

您可以通过在PyCharm中的运行配置中添加filename.txt参数来修复它。

最新更新