Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 使用csv文件从元组到整数_Python_Csv_Tuples - Fatal编程技术网

Python 使用csv文件从元组到整数

Python 使用csv文件从元组到整数,python,csv,tuples,Python,Csv,Tuples,我在使用csv.reader时遇到了一点问题 我有两个文件: FileA对应于9个地理坐标(x(第1列)和y(第2列),没有标题。该文件将从excel保存到csv文件中 301506 5918202 301012 5919417 309769 5919926 299337 5924043 299602 5924730 305310 5907794 300634 5927108 303968 5922319 303684 5922062 304882 5922009 File

我在使用csv.reader时遇到了一点问题

我有两个文件:

FileA对应于9个地理坐标(x(第1列)和y(第2列),没有标题。该文件将从excel保存到csv文件中

301506  5918202
301012  5919417
309769  5919926
299337  5924043
299602  5924730
305310  5907794
300634  5927108
303968  5922319
303684  5922062
304882  5922009
FileB,它是0到8之间9个整数的随机序列。该文件将从excel另存为csv文件。数据在第1行

6     3     7     8     5     1     2     4     0
代码如下:

import csv

FileA = csv.reader(open(‘FileA.csv’,'rb'),delimeter=',')
coord_list = []
coord_list.extend(FileA)
coordinates = []
for data in coord_list:
     coordinates.append(data[0])
print coordinates

FileB = csv.reader(open(‘FileB.csv’,'rb'),delimeter=',')
seq_list = []
seq_list.extend(FileB)
sequence = []
for data in seq_list:
    sequence.append(data[0])
print sequence


FileC = []

for i range(0,8,1):
         FileC[sequence[i], 1] = coordinates[i,1]
         FileC[sequence[i], 2] = coordinates[i,2]

print FileC
但我得到:

File "C:\generatesequence\script.py", line 19, in <module>
    FileC[sequence[i], 1] = coordinates[i,1]
TypeError: list indices must be integers, not tuple
文件“C:\generatesequence\script.py”,第19行,在
FileC[sequence[i],1]=坐标[i,1]
TypeError:列表索引必须是整数,而不是元组
我想构建FileC,以便在ArcMAP中使用它


欢迎提供任何建议:)

a[b,c]
索引
a
和元组
(b,c)
。您需要仔细考虑在执行此操作的特定行中真正想要做什么。

您正在尝试使用元组访问列表。例如,请尝试
文件[sequence[i]:1]=坐标[i:1]

test.csv:
'a、b、c、d、f、g'

In [2]: import csv
In [3]: spamReader = csv.reader(open('test.csv', 'rb'), delimiter=',', quotechar='|')
In [4]: spamReader 
Out[4]: <_csv.reader object at 0x1e34ec0>
In [5]: spamReader.next()
Out[5]: ['a', 'b', 'c', 'd', 'f', 'g']
[2]中的
:导入csv
在[3]中:spamReader=csv.reader(open('test.csv','rb'),delimiter=','quotechar='|')
在[4]中:spamReader
出[4]:
在[5]中:spamReader.next()
Out[5]:['a','b','c','d','f','g']

读卡器返回的对象是迭代器,而不是元组或列表。因此FileA应该是一个迭代器(您不能直接将其转换为列表)

您访问列表的方式不正确:您不能像在R或MATLAB中那样使用逗号访问二维列表。请仔细检查一下

根据您的代码,我认为这应该可以完成您正在尝试做的事情:

import csv

FileA = csv.reader(open(‘C:/testing/FileA.csv’,'rb'),delimeter',')
FileB = csv.reader(open(‘C:/testing/FileB.csv’,'rb'),delimeter',')
FileC = [0] * 10

for lineA, lineB in zip(FileA, FileB):
    FileC[int(lineB[0])] = lineA

print FileC

我不明白,你能说得更清楚些吗?列表(迭代器)将给出[[a,b,c,d,f,g]]而不仅仅是元素列表谢谢你的回答,不幸的是我得到了以下错误:'TypeError:列表索引必须是整数,而不是str'请尝试上面的编辑版本。我将一行更改为
FileC[int(lineB[0])]=lineA
实际上点数更大(49而不是10),但以同样的方式使用您的脚本(我检查了两次没有错误),我得到:'[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,['301506.3',5918202.4'],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],请发布您的FileA.csv和FileB.csv的内容。根据你的帖子,我猜fileB.csv总是有一个12,至少在第1列,但我们真的需要看看它。嗨,谢谢你的帮助。请你看看我的另一个问题。基本上,“wim”编写的代码工作得很好。但我的问题是如何在csv文件中使用我的数据?也许使用文本文件的另一种方式导入数据更容易些?谢谢您的回答,但是我收到了以下错误消息:“文件C:\testing\script.py”,第51行,在文件[sequence[I]:1]=坐标[I:1]类型错误:“\U csv.reader”对象不可订阅”