У меня есть файл в формате CSV (фото): Python- Невозможно перезаписать первый столбец CSV-файл с новым отметкой времени
В изображении есть время колонка с датой и время строки, у меня есть программа, которая принимает этот столбец и только считывает время H: M: S. Тем не менее, не только в моей программе я пытаюсь взять столбец, чтобы читать только метку времени H: M: S, но я также пытаюсь перезаписать столбец времени первого файла и заменить его только на H: M: S на новый .csv со следующим кодом.
КОД:
import csv
import datetime as dt
import os
File = 'C:/Users/Alan Cedeno/Desktop/Test_Folder/HiSAM1_data_160215_164858.csv'
root, ext = os.path.splitext(File)
output = root + '-new.csv'
with open(File,'r') as csvinput,open(output, 'w') as csvoutput:
writer = csv.writer(csvoutput, lineterminator='\n')
reader = csv.reader(csvinput)
all = []
row = next(reader)
for line in reader:
row.append(dt.datetime.strptime(line[0],'%m/%d/%Y %H:%M:%S').time())
all.append(row)
for row in reader:
row.append(row[0])
all.append(row)
writer.writerows(all)
Программа работает и принимает строки даты-времени и перезаписывает строку с отметкой времени H: M: S в новом файле .csv. Однако вот проблема: выходной файл вместо замены столбца времени, который он заменил, каждый столбец получает выходной файл, который выглядит так. См 2-ое изображение:
На данный момент я не»т действительно знают, как сделать новый выходной файл, чтобы посмотреть, как файл первого изображения, с форматом H: M: S в первом столбец ТОЛЬКО, не все скремблировано, как на втором изображении. Какие-либо предложения?
См столбец K, он должен быть столбец А первого изображения, а столбцы В, С, D, Е, F, G, I и J должны оставаться той же как в изображении 1.
Скачать LInk из CSV-файла: http://www.speedyshare.com/z2jwq/HiSAM1-data-160215-164858.csv
Прежде всего, это выглядит, как вам не нужно ваш второй цикл.В первом цикле for вы добавляете строку, которая определяется как первая строка читателя. – Bahrom
@Bah Я изменил строку [0] на строку [1], и что это значит, что он больше не читает столбца времени, который является первым столбцом, а столбец 0.3/L, который является вторым столбцом. Поэтому я не могу изменить строку [0] на другое значение. Может быть, я не понимаю, что вы говорите ... – dontbadick
попробуйте полностью прокомментировать ваш второй цикл и изменив тело первого цикла (из row.append ...; all.append) в эту строку: 'all.append (строка + [dt.datetime.strptime (строка [0], '% m /% d /% Y% H:% M:% S'). time()]) '(захватить последнее редактирование, я забыл скобки раньше) – Bahrom