当我在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
参数来修复它。