Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 21, 2016 13:31:49

glsmen
Зарегистрирован: 2016-04-19
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как объединить текстовые таблицы в один текстовый файл по столбцам?

Здравствуйте форумчане!
У меня есть несколько текстовых таблиц и некоторых из них необходимо объединить по столбцам. Помогите как это реализовать.
Суть заключается в следующем:
У меня есть f1.txt

ns1 6 -3 
ns2 6 -3 
ns3 7 -4 
ns4 8 -2 
ns5 8 -3 
ns6 7 -2 
ns7 6 -1 
и f2.txt. ++++++++++++
ns11 67 5 
ns21 67 -3 
ns31 77 21 
ns41 88 -2 
ns51 82 -3.5 
ns61 72 -2 
ns71 62 -1.35

После объединения должно получится
ns1 6 -3 ns11 67 5 
ns2 6 -3 ns21 67 -3 
ns3 7 -4 ns31 77 21
ns4 8 -2 ns41 88 -2 
ns5 8 -3 ns51 82 -3.5
ns6 7 -2 ns61 72 -2
ns7 6 -1 ns71 62 -1.35 

Спасибо!

Офлайн

#2 Апрель 21, 2016 13:38:15

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Как объединить текстовые таблицы в один текстовый файл по столбцам?

И в чем проблема?
Покажите когд и место где застряли? какую ошибку пишет?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Апрель 21, 2016 14:03:00

glsmen
Зарегистрирован: 2016-04-19
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как объединить текстовые таблицы в один текстовый файл по столбцам?

ZerG
И в чем проблема? Покажите когд и место где застряли? какую ошибку пишет?
Пытался просто объединить файлы, работает (код внизу!). Но добавляет 2ой файл в конец 1го файла. А как объединить столбца незнаю. Может есть другая команда, не подскажите?
Вот код
f1=open('f1.txt', 'r')
f2=open('f2.txt', 'r')
f1_out=[]
f2_out=[]
res=[]
f1_out=f1.read()
f2_out=f2.read()
res=f1_out+f2_out
print res
     
f1.close()
f2.close()
 

Офлайн

#4 Апрель 21, 2016 14:08:53

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Как объединить текстовые таблицы в один текстовый файл по столбцам?

если количество и порядок строк в файлах одинаковые то просто заполните поочередно данными.

# -*- coding: utf-8 -*-
l1 = [1, 2, 3]
l2 = [5, 6, 7]
res = []
for i in range(0, len(l1)):
    res.append((l1[i], l2[i]))
print(res)



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Отредактировано ZerG (Апрель 21, 2016 14:11:19)

Офлайн

#5 Апрель 21, 2016 14:20:32

glsmen
Зарегистрирован: 2016-04-19
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как объединить текстовые таблицы в один текстовый файл по столбцам?

ZerG
если количество и порядок строк в файлах одинаковые то просто заполните поочередно данными.
В этом случае все смешивается

Офлайн

#6 Апрель 21, 2016 14:40:59

prg
Зарегистрирован: 2016-04-21
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как объединить текстовые таблицы в один текстовый файл по столбцам?

l1 = []
l2 = []
with open('f1.txt') as f1:
    for x in f1:
        l1.append(x.rstrip())
with open('f2.txt') as f2:
    for y in f2:
        l2.append(y.rstrip())
for one, two in zip(l1, l2):
    print(one, '=>', two)

Офлайн

#7 Апрель 21, 2016 15:42:17

glsmen
Зарегистрирован: 2016-04-19
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как объединить текстовые таблицы в один текстовый файл по столбцам?

Попробовал следующем образом:

#!/usr/bin/env python
# -- coding: utf-8 --
# ver.0
import os
import sys
#import subprocess
f1=open('f1.txt', 'r')
f2=open('f2.txt', 'r')
res1=[]
res2=[]
out=[]
for li1 in f1:
    res1.append(li1.rstrip())
    #print res1.all
    
for li2 in f2:
    res2.append(li2.rstrip())
    #print res2.all
out=map(None,res1, res2)
print out
     
f1.close()
f2.close()
fw=open('test_c1.txt', 'w')
fw.write(out)
fw.close() 

Но, сохранить в файл не получается. Выдает следующую ошибку
sh-4.2$ ./my_2.py
('ns1 6 -3', ‘ns11 67 5’), ('ns2 6 -3', ‘ns21 67 -3’), ('ns3 7 -4', ‘ns31 77 21’), ('ns4 8 -2', ‘ns41 88 -2’), ('ns5 8 -3', ‘ns51 82 -3.5’), ('ns6 7 -2', ‘ns61 72 -2’), ('ns7 6 -1', ‘ns71 62 -1.35’)
Traceback (most recent call last):
File “./my_2.py”, line 28, in <module>
fw.write(out)
TypeError: expected a character buffer object
sh-4.2$

Офлайн

#8 Апрель 21, 2016 15:51:13

glsmen
Зарегистрирован: 2016-04-19
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как объединить текстовые таблицы в один текстовый файл по столбцам?

prg
Ваш метод тоже использовал. Работает, спасибо.
Но, не получается сохранить! Что предложите?

Офлайн

#9 Апрель 21, 2016 16:48:16

prg
Зарегистрирован: 2016-04-21
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как объединить текстовые таблицы в один текстовый файл по столбцам?

l1 = []
l2 = []
with open('f1.txt') as f1:
    for x in f1:
        l1.append(x.rstrip())
with open('f2.txt') as f2:
    for y in f2:
        l2.append(y)
with open('test_c1.txt', 'w') as fw:
    for one, two in zip(l1, l2):
        fw.write('{} {}'.format(one, two))

Отредактировано prg (Апрель 21, 2016 16:58:20)

Офлайн

#10 Апрель 21, 2016 17:01:43

glsmen
Зарегистрирован: 2016-04-19
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как объединить текстовые таблицы в один текстовый файл по столбцам?

prg
Огромное спасибо! Заработало!
Единственно, что добавил ‘\n’ в формат write.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version