0

我有一个大约 1000 行的 txt 文件,我想将第 1 列设置为源目标,将第 2 列设置为传输到目标并使用shutil.copyfile(src, dst)复制这些文件。

我现在将它设置为简单的打印(src,dst),所以我可以看到发生了什么。我没有做正确的事情for src in vld来添加 linux 价值。

我是否可以通过当前设置使 src 的值与 dst 的相应值对齐?我正在使用 Python 2.4

import csv
import operator
import sys
import os
import shutil

inf = csv.reader(open('data.txt','r'))
sortedlist = sorted(inf, key=operator.itemgetter(2), reverse=True)
def dothis(x):
        for row in sortedlist:
                print row[x]

vld = dothis(0)
linux = dothis(1)

for src in vld:
        dst = linux
        print (src, dst)

当前错误信息:

    Traceback (most recent call last): File "test.py", line 16, in ? for src in vld:
TypeError: iteration over non-sequence  
4

1 回答 1

2

你几乎拥有它,但在那里的某个地方偏离了轨道。:) dothis不返回任何东西,所以vldlinux都是空的。

csv.reader已经为您“排列”了价值观;它一次产生行。实际上,当不需要时,您会再次将它们分开。

inf = csv.reader(open('data.txt','r'))
sortedlist = sorted(inf, key=operator.itemgetter(2), reverse=True)

for row in sortedlist:
    src = row[0]
    dst = row[1]
    print src, dst
于 2013-01-17T19:45:04.243 回答