Python 读取输入文件
我在自学python。我正在尝试使用以下命令读取输入文件:Python 读取输入文件,python,Python,我在自学python。我正在尝试使用以下命令读取输入文件: import numpy as np import matplotlib.pyplot as plt import math import sys NEM_2D = [] NEM_zdim = [] NEMdataline = False with open(sys.argv[1],'r') as file: for line in file: single=line.split()
import numpy as np
import matplotlib.pyplot as plt
import math
import sys
NEM_2D = []
NEM_zdim = []
NEMdataline = False
with open(sys.argv[1],'r') as file:
for line in file:
single=line.split()
if not line.startswith("!") and NEMdataline == True:
if single[0].isdigit:
NEM_X=[]
for i in range(0,NEM_X):
if int(single[i]) == 0:
NEM_X.append(0)
if int(single[i]) == 1:
NEM_X.append(1)
if int(single[i]) != 0 and int(single[i]) != 1:
NEM_X.append(2)
NEM_2D.append(2)
file.close()
运行时,我发现以下错误消息:
打开(sys.argv[1],'r')作为文件:
索引器错误:列表索引超出范围此错误意味着
sys.argv
列表中没有第二个元素(列表为0索引,因此第一个元素的索引为0,第二个元素的索引为1,以此类推)。无论从何处运行Python脚本,都需要传递一个命令行参数,以便sys.argv[1]有一个值:Python script.py
。现在,如果使用sys.argv[1]
,它将包含作为文件名传入的任何值。请注意,sys.argv[0]
包含脚本本身的名称
此外,您还可以删除
file.close()
行,因为使用with
块可以为您关闭文件您具体运行什么<运行脚本时,在命令行中输入code>sys.argv选项。如果在没有任何选项的情况下运行脚本,sys.argv将为空,这将导致堆栈溢出。你已经开始学习了吗?这将帮助你更有效地使用网站并获得更好的回复。这是否回答了你的问题?