Python 以数组形式读入文件,然后重新排列列

Python 以数组形式读入文件,然后重新排列列,python,file-io,Python,File Io,我想读入一个包含多列的文件,然后以与原始文件不同的顺序写出一个包含列的新文件。其中一列有一些额外的文本,我希望在新文件中也删除这些文本 例如,如果我读入文件:data.txt 1 6 omi=11 16 21 26 2 7 omi=12 17 22 27 3 8 omi=13 18 23 28 4 9 omi=14 19 24 29 5 10 omi=15 20 25 30 我希望写入的文件是:d

我想读入一个包含多列的文件,然后以与原始文件不同的顺序写出一个包含列的新文件。其中一列有一些额外的文本,我希望在新文件中也删除这些文本

例如,如果我读入文件:data.txt

1   6   omi=11   16   21   26
2   7   omi=12   17   22   27
3   8   omi=13   18   23   28
4   9   omi=14   19   24   29
5  10   omi=15   20   25   30
我希望写入的文件是:dataNEW.txt

26   1   11   16
27   2   12   17
28   3   13   18
29   4   14   19
30   5   15   20
在inspectorG4dget的帮助下,我得出了以下结论:

import csv as csv
import sys as sys

infile = open('Rearrange Column Test.txt')
sys.stdout = open('Rearrange Column TestNEW.txt' , 'w')
for line in csv.reader(infile, delimiter='\t'):
    newline = [line[i] for i in [5, 0, 2, 3]]
    newline[2] = newline[2].split('=')[1]
    print newline[0], newline[1], newline[2], newline[3]
sys.stdout.close()

有没有比列出从0到总行数的每行索引更简洁的方法来获得不带任何逗号的输出?

是的,可以这样做。请先尝试一下,如果遇到问题,请告诉我们。我调整了此设置,因为我不断遇到语法错误。并且-1导致文件中没有输出,但我只是将其更改为5。我也不知道我需要导入csv才能使用它。所以我有:infle=open('path/to/input')outfile=open('path/to/output','w')用于csv中的行。reader(infle,delimiter='\t'):newline=[5,0,23]]中的行[I]用于I]新行[2]=新行[2]。split('=')[1]writer.writerow(newline)输出中有逗号。有没有一种方法可以不使用逗号而只使用制表符分隔来获得输出?
import csv

with open('path/to/input') as infile, open('path/to/output', 'w') as outfile:
    writer = csv.writer(outfile)
    for line in csv.reader(infile, delimiter='\t'):
        newline = [line[i] for i in [-1, 0, 2 3]]
        newline[2] = newline[2].split('=')[1]
        writer.writerow(newline)