Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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_Arrays_Indexing - Fatal编程技术网

Python 索引错误超出范围

Python 索引错误超出范围,python,arrays,indexing,Python,Arrays,Indexing,由于某些原因,我在尝试运行以下代码时遇到此错误 #!/usr/bin/python import matplotlib.pyplot as plt x = [] y = [] readFile = open('Out_0_0.txt','r') sepFile = readFile.read().split('\n') readFile.close() for plotPair in sepFile: xandy = plotPair.split() x.append(int(x

由于某些原因,我在尝试运行以下代码时遇到此错误

#!/usr/bin/python
import matplotlib.pyplot as plt
x = []
y = []
readFile = open('Out_0_0.txt','r')
sepFile = readFile.read().split('\n')
readFile.close()
for plotPair in sepFile:
    xandy = plotPair.split()
    x.append(int(xandy[0]))
    y.append(int(xandy[1]))
print x
print y
当我删除x.append和y.append行并只放入一个print语句来打印出xandy中的内容时,它会很好地打印出数组中的每一对值。文本文件包含以下内容

 1 2
 3 4
 5 6
 7 8

我想要它做的就是将第一列存储在x数组中,第二列存储在y数组中。问题在于如何读取文件

这会奏效的

x = []
y = []
with open('test.txt','r') as data_file:
    for plot_pair in data_file:
        xandy = plot_pair.split()
        x.append(int(xandy[0]))
        y.append(int(xandy[1]))
print(x)
print(y)

问题在于你如何阅读文件

这会奏效的

x = []
y = []
with open('test.txt','r') as data_file:
    for plot_pair in data_file:
        xandy = plot_pair.split()
        x.append(int(xandy[0]))
        y.append(int(xandy[1]))
print(x)
print(y)

在记事本++之类的编辑器中打开文件,确保正在读取的文件开头或结尾没有多余的行。

在记事本++之类的编辑器中打开文件,确保正在读取的文件开头或结尾没有多余的行。

快速。。。应能工作(未准确测试:P)


另一个快速的想法是:确保txt文件末尾没有空行。如果行:也检查一下,也许可以添加一个

一些快速的。。。应能工作(未准确测试:P)


另一个快速的想法是:确保txt文件末尾没有空行。如果行:
也检查一下,也许可以添加一个

您可以更高效(更安全)地阅读这篇文章。我做的第一个更改是在读取文件时使用。这将在您完成文件后自动处理关闭文件的操作

接下来,我删除了
拆分('\n')
,因为它不是必需的。相反,我们将一行一行地循环文件,并在空白处拆分它。由于这是一个两列文件,我们将使用以下行执行此操作:

fx,fy = line.split()
我把它放在了try/中,以防文件末尾有空行。这将产生一个
ValueError
,假设文件到此结束

然后我们将该行的列附加到最终数组中

x = []
y = []
with open('test.txt') as f:
    for line in f:
        try:
            fx,fy = line.split()
        except ValueError:  
            break       
        x.append(int(fx))
        y.append(int(fy))

print x
print y
这将打印出:

[1, 3, 5, 7]
[2, 4, 6, 8]

最后,我删除了matplotlib导入。本例中不需要它。

您可以更高效(更安全)地阅读它。我做的第一个更改是在读取文件时使用。这将在您完成文件后自动处理关闭文件的操作

接下来,我删除了
拆分('\n')
,因为它不是必需的。相反,我们将一行一行地循环文件,并在空白处拆分它。由于这是一个两列文件,我们将使用以下行执行此操作:

fx,fy = line.split()
我把它放在了try/中,以防文件末尾有空行。这将产生一个
ValueError
,假设文件到此结束

然后我们将该行的列附加到最终数组中

x = []
y = []
with open('test.txt') as f:
    for line in f:
        try:
            fx,fy = line.split()
        except ValueError:  
            break       
        x.append(int(fx))
        y.append(int(fy))

print x
print y
这将打印出:

[1, 3, 5, 7]
[2, 4, 6, 8]

最后,我删除了matplotlib导入。本例中不需要它。

为什么要在新行上拆分读取
.read
将自动一次读取一行。您是否打算执行
.readlines
?您遇到了什么错误?当我运行代码时,我得到
x=[1,3,5,7]
y=[2,4,6,8]
我猜(不确定)文件底部有一个空行。文件中可能有空行吗?回车?你为什么要在新行上拆分读数
.read
将自动一次读取一行。您是否打算执行
.readlines
?您遇到了什么错误?当我运行代码时,我得到
x=[1,3,5,7]
y=[2,4,6,8]
我猜(不确定)文件底部有一个空行。文件中可能有空行吗?马车回程?