Страница 2 из 2
Re: Экпорт данных из Postgresql в файл
Добавлено: 29 июн 2016, 19:04
Ariki
Странно, прямому слэшу там взяться неоткуда. Его точно нет в самих данных? У меня все строки с кавычками экспортировались адекватно. Команда COPY преобразовала их в двойные кавычки в файле CSV, а скрипт - обратно в одинарные.
Re: Экпорт данных из Postgresql в файл
Добавлено: 30 июн 2016, 09:40
kasandra
Вы правы, там прямого слеша нет. Это моя ошибка была. Благодарю за скрипт.
Скажите, а можно сделать так, что б названия результирующих файлов брались с выгруженного довыкумента, например со второго столбца.
Сориентируйте, что для этого нужного?
Re: Экпорт данных из Postgresql в файл
Добавлено: 30 июн 2016, 11:35
Ariki
Можно, конечно. Замените выражение, в котором формируется имя файла,
на
или, если хотите добавить путь к каталогу и расширение, на что-нибудь вроде
Код: Выделить всё
'{0}/{1}.txt'.format(output_prefix, row[1])
Re: Экпорт данных из Postgresql в файл
Добавлено: 30 июн 2016, 18:26
kasandra
Пробовала писать так:
Код: Выделить всё
import csv
import sys
input_filename = sys.argv[1]
output_prefix = sys.argv[2] if len(sys.argv) > 2 else 'output'
with open(input_filename, 'rb') as input_file:
reader = csv.reader(input_file, delimiter='\n', quotechar='"')
for i, row in enumerate(reader):
with open(row[1], 'w') as output_file:
output_file.write(row[0])
И так:
Код: Выделить всё
import csv
import sys
input_filename = sys.argv[1]
output_prefix = sys.argv[2] if len(sys.argv) > 2 else 'output'
with open(input_filename, 'rb') as input_file:
reader = csv.reader(input_file, delimiter='\n', quotechar='"')
for i, row in enumerate(reader):
with open('{0}/{1}.txt'.format(output_prefix, row[1]), 'w') as output_file:
output_file.write(row[0])
В обоих случаях пишет, что list index out of range. То есть не видит второй столбец, если я верно понимаю. Но я пробовала разный разделитель использовать в csv файле и просто в ручную создавать произвольный документ, не срабатывает.
А если заменить на row[0], то пишет, что не находит файл с указаным именем.
Что я сделала не верно?
Re: Экпорт данных из Postgresql в файл
Добавлено: 30 июн 2016, 19:25
Ariki
Это я забыл про разделитель. В скрипте поменяйте delimiter='\n' на delimiter=',' или что вы там используете в качестве разделителя.
Re: Экпорт данных из Postgresql в файл
Добавлено: 30 июн 2016, 20:17
kasandra
Все работает отлично, благодарю за помощь.
