Как я могу сжать () несколько строк файла, разделенных табуляцией, чтобы транспонировать содержимое файла? - PullRequest
0 голосов
/ 09 января 2020

говорят, что файл имеет следующее содержимое:

Xkr4    0   0   0   0
Gm1992  0   0   0   0
Gm37381 0   0   0   0
Rp1 0   0   0   0
Rp1.1   0   0   0   0
Sox17   0   0   0   0
f=open(tsv_path, 'r')
transposed_iterator = zip(*csv.reader(open(tsv_path), delimiter = '\t'))
with open(output_tsv_path, 'w') as out:
    for row in transposed_iterator:
        out.write(delimiter.join(row) + '\n')

Результат:

Xkr4    Gm1992  Gm37381 Rp1 Rp1.1   Sox17
0   0   0   0   0   0
0   0   0   0   0   0
0   0   0   0   0   0
0   0   0   0   0   0

Вышеуказанные строки в точности выполняют то, что я хочу, но проблема в том, что я использую очень старый jython, который не содержит модуль CSV. Как я могу сделать это без модуля CSV?

1 Ответ

1 голос
/ 09 января 2020

Вы можете попробовать это:

f=open('text.txt')
lines = (line.strip().split() for line in list(f))

with open('otext.txt', 'a') as fo:
    for line in zip(*lines):
        print(*line, sep = '\t', file = fo)

f.close()
...