0

約1000行のtxtファイルがあります。列1をソースの宛先として設定し、列2を宛先への転送として設定し、shutil.copyfile(src, dst)これらのファイルをコピーして使用します。

現在、単純な印刷(src、dst)として設定しているので、何が起こっているかを確認できます。for src in vldLinuxの値を追加するために何かを正しく行っていません。

srcの値をdstの対応する値と一致させるために、この現在の設定を使用する方法はありますか?Python2.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 に答える