Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 读取输入文件_Python - Fatal编程技术网

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()

我在自学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()

        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将为空,这将导致堆栈溢出。你已经开始学习了吗?这将帮助你更有效地使用网站并获得更好的回复。这是否回答了你的问题?