2013-05-20 1 views
0

Я пытаюсь получить первую строку раздела file.txt () разделенных строк) и создать новый файл с одним столбцом, который сделан из элементы строки, которую я хочу извлечь. Мне удалось получить первую строку файла сНапишите первую строку из .txt-файла в качестве столбца в новом .txt-файле

f = open("file.txt", "r") 
row1 = f.readline() 

Я попытался ("new_file.txt", w) после транспозиции с x.T, но это не сработало. После того, как я получу файл, я должен также разделить на 10 меньших файлов.

Это пример входного файла:

rs123 rs15 rs1567 rs43 rs567 rs3564 
    1  2  3  4  5  6 
    7  8  9 10  11  12 

и это то, что мне нужно:

rs123 
rs15 
rs1567 
rs43 
rs567 
rs3564 
+0

http://stackoverflow.com/questions/11755555/saving-numpy-array-to-txt-file-as-a-single-column –

+0

Пожалуйста, помечать вопрос надлежащим образом, с используемым языком, а также любые соответствующие рамки или библиотеки. –

+0

правильно ли он отформатирован? Ваш файл выглядит именно так? – elyase

ответ

1
with open('inFile.txt', 'r') as inFile, open('outfile.txt', 'w') as outFile: 
    outFile.writelines(line + '\n' for line in inFile.readline().split('\t')) 

Чтобы разбить файл на более мелкие части, я хотел бы использовать UNIX раскол, например:

split -l $lines_per_file outfile.txt 

Чтобы найти $lines_per_file разделить общее количество строк wc -l output.txt на 10.

+0

Отлично, это сработало! – Alice

1

Вы можете использовать genfromtxt и savetxt процедуры:

Если вы хотите сохранить строки (в соответствии с поправками вопрос):

import numpy as np 
with open('new_file.txt','w') as f: 
    for el in np.genfromtxt('file.txt',dtype=None)[0]: 
    f.write(str(el)+'\n') 

Если данные являются числовыми:

import numpy as np 
x=np.genfromtxt('file.txt')[0] 
np.savetxt('new_file.txt',x) 

Вы даже можете объединить их в одну строку:

np.savetxt('myfile2.dat',np.genfromtxt('myfile.dat')[0]) 
+0

Спасибо, это сработало бы, если бы у меня были числа, но вывод был col nan, потому что у меня есть строки. Я попытался установить dtype = "S10" или dtype = "object", но он не работает. – Alice

+0

Это не будет работать, поскольку массивы numpy должны иметь однородные данные, только строки или только плавающие. – elyase

+0

Обновлен, чтобы отразить измененный вопрос. – atomh33ls

Смежные вопросы