【发布时间】:2016-06-20 19:57:18
【问题描述】:
我正在尝试使用 Python 生成一个 CSV 文件“距离”,我想在其中复制另一个文件的行,“结果”如下:
结果.csv:
|ID |
|---|
| 1 |
| 2 |
| 3 |
...
距离.csv
|ID1 |ID2 |
|----|----|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
...
这是我的 Python 代码:
with open('distances.csv', 'wb') as ff:
writer = csv.writer(ff, delimiter=";", quoting=csv.QUOTE_ALL)
with open('result.csv', 'rb') as f:
reader = csv.reader(f, delimiter=";", quoting=csv.QUOTE_NONE)
reader2 = csv.reader(f, delimiter=";", quoting=csv.QUOTE_NONE)
for row in reader:
for row2 in reader2:
lst = []
lst.append(row[0])
lst.append(row[1])
lst.append(row2[0])
lst.append(row2[1])
writer.writerow([unicode(s).encode("utf-8") for s in lst])
由于某种原因,它只复制了 result.csv 中的第一行
提前致谢!
【问题讨论】:
-
我们应该从源文件中复制每一行多少次?我们如何获得列 ID2(或者它只是一个特定行被复制多少次的运行计数)。
-
抱歉没有指定,列 ID2 只是复制行 ID 的结果,所以以第 1 行为例,我想复制所有 ID(包括 1,我将在稍后删除该案例) .所以假设我有 100 行,我想将每一行复制 100 次。
-
有像 (1,1), (2,2) 等这样的距离有意义吗?它们总是等于零?
-
所以如果我理解你的话,每一行都会被文件中的行数复制。 ID2 是每个重复行的运行计数。