1
У меня небольшая задержка с файлами CSV в python (3.5). Раньше я работал с отдельными файлами, и проблем не было, но сейчас у меня есть> 100 файлов в одной папке. Итак, моя цель:Множественное редактирование CSV-файлов в Python
- Для разбора всех * .csv файлов в каталоге
- Из каждого файла удалить первые 6 строк, файлов состоит из следующих данных:
"nu(Ep), 2.6.8"
"Date: 2/10/16, 11:18:21 AM"
19
Ep,nu
0.0952645,0.123776,
0.119036,0.157720,
...
0.992060,0.374300,
- Сохраните каждый файл отдельно (например, добавив «_edited»), поэтому должны быть сохранены только числа.
- В качестве опции - у меня есть данные, разделенные на две части для одного материала. Например: Ag (0-1_s) .csv и Ag (1-4) _s.csv (после шагов 1-3 должно быть как Ag (*) _ modified.csv). Как объединить эти два файла таким образом, чтобы добавить данные из (1-4) в конец (0-1), сохраняя его в третьем файле? Мой код до сих пор является следующее:
import os, sys
import csv
import re
import glob
import fileinput
def get_all_files(directory, extension='.csv'):
dir_list = os.listdir(directory)
csv_files = []
for i in dir_list:
if i.endswith(extension):
csv_files.append(os.path.realpath(i))
return csv_files
csv_files = get_all_files('/Directory/Path/Here')
#Here is the problem with csv's, I dont know how to scan files
#which are in the list "csv_files".
for n in csv_files:
#print(n)
lines = [] #empty, because I dont know how to write it properly per
#each file
input = open(n, 'r')
reader = csv.reader(n)
temp = []
for i in range(5):
next(reader)
#a for loop for here regarding rows?
#for row in n: ???
# ???
input.close()
#newfilename = "".join(n.split(".csv")) + "edited.csv"
#newfilename can be used within open() below:
with open(n + '_edited.csv', 'w') as nf:
writer = csv.writer(nf)
writer.writerows(lines)
Спасибо!
Отступа вашего кода правильно не может повредить ... – martineau
Большого спасибо! Это сработало! Я просто изменил 'fname = os.basename (fpath)' на 'fname = os.path.basename (fpath)' –