Запись в CSV из списка, write.row, кажется, останавливается в странном месте
Я пытаюсь объединить несколько файлов CSV. Моя начальная функция направлена на:
Загляните внутрь директории и посчитайте количество файлов внутри (предположим, что все .csv)Откройте первый CSV и добавьте каждую строку в списокОбрезать верхние три строки (есть некоторая бесполезная информация о заголовке столбца, которую я не хочу)Сохраните эти результаты в списке, который я назвал «архив»Откройте следующий файл CSV и повторите (обрежьте и добавьте их в «архив»)Когда у нас не было CSV-файлов, я хотел записать полный «архив» в файл в отдельной папке.Например, если бы я начал с трех CSV-файлов, которые выглядят примерно так.
CSV 1
[]
[['Title'],['Date'],['etc']]
[]
[['Spam'],['01/01/2013'],['Spam is the spammiest spam']]
[['Ham'],['01/04/2013'],['ham is ok']]
[['Lamb'],['04/01/2013'],['Welsh like lamb']]
[['Sam'],['01/12/2013'],["Sam doesn't taste as good and the last three"]]
CSV 2
[]
[['Title'],['Date'],['etc']]
[]
[['Dolphin'],['01/01/2013'],['People might get angry if you eat it']]
[['Bear'],['01/04/2013'],['Best of Luck']]
CSV 3
[]
[['Title'],['Date'],['etc']]
[]
[['Spinach'],['04/01/2013'],['Spinach has lots of iron']]
[['Melon'],['02/06/2013'],['Not a big fan of melon']]
В конце которого я бы дома, чтобы получить что-то вроде ...
CSV OUTPUT
[['Spam'],['01/01/2013'],['Spam is the spammiest spam']]
[['Ham'],['01/04/2013'],['ham is ok']]
[['Lamb'],['04/01/2013'],['Welsh like lamb']]
[['Sam'],['01/12/2013'],["Sam doesn't taste as good and the last three"]]
[['Dolphin'],['01/01/2013'],['People might get angry if you eat it']]
[['Bear'],['01/04/2013'],['Best of Luck']]
[['Spinach'],['04/01/2013'],['Spinach has lots of iron']]
[['Melon'],['02/06/2013'],['Not a big fan of melon']]
Итак ... Я приступил к написанию этого:
import os
import csv
path = './Path/further/into/file/structure'
directory_list = os.listdir(path)
directory_list.sort()
archive = []
for file_name in directory_list:
temp_storage = []
path_to = path + '/' + file_name
file_data = open(path_to, 'r')
file_CSV = csv.reader(file_data)
for row in file_CSV:
temp_storage.append(row)
for row in temp_storage[3:-1]:
archive.append(row)
archive_file = open("./Path/elsewhere/in/file/structure/archive.csv", 'wb')
wr = csv.writer(archive_file)
for row in range(len(archive)):
lastrow = row
wr.writerow(archive[row])
print row
Кажется, это работает ... за исключением того, что когда я проверяю свой выходной файл, кажется, он перестал писать в странной точке ближе к концу "
например:
[['Spam'],['01/01/2013'],['Spam is the spammiest spam']]
[['Ham'],['01/04/2013'],['ham is ok']]
[['Lamb'],['04/01/2013'],['Welsh like lamb']]
[['Sam'],['01/12/2013'],['Sam doesn't taste as good and the last three']]
[['Dolphin],['01/01/2013'],['People might get angry if you eat it']]
[['Bear'],['01/04/2013'],['Best of Luck']]
[['Spinach'],['04/0
Это действительно странно, я не могу понять, что пошло не так. Казалось, что пишет хорошо, но решил остановить даже на полпути через список. Возвращаясь к нему, я уверен, что это как-то связано с моей последней записью «for loop», но я не слишком знаком с методами csv. Иметь прочитал документацию, и я все еще в тупике.
Кто-нибудь может указать, где я ошибся, как я могу это исправить и, возможно, будет ли лучший способ сделать все это!
Большое спасибо