#python #csv
#python #csv
Вопрос:
Пожалуйста, помогите с приведенным ниже кодом, он предназначен для чтения 2 CSV-файлов и удаления их первой строки. Проблема в том, что он сохраняет их в других CSV-файлах, и они оба идентичны. Мне нужно сохранить их в том же исходном файле.
import time
import os
import os, re
import logging
import glob
import csv
for CSV1 in os.listdir('C:\Users\XXXXX\Downloads'):
if re.match('XXXcsv', CSV1):
print(CSV1)
#remove the first 5 rows in the CSV file
with open('C:\Users\XXXXX\Downloads\' CSV1,'r') as f:
with open('C:\Users\XXXXX\Downloads\P6CB.csv','w') as f1:
next(f) # skip header line
for line1 in f:
f1.write(line1)
for CSV2 in os.listdir('C:\Users\XXXXX\Downloads'):
if re.match('VVVcsv', CSV2):
print(CSV2)
#remove the first 5 rows in the CSV file
with open('C:\Users\XXXXX\Downloads\' CSV2,'r') as v:
with open('C:\Users\XXXXX\Downloads\WindowsDevices.csv','w') as v1:
next(v) # skip header line
next(v) # skip header line
next(v) # skip header line
next(v) # skip header line
next(v) # skip header line
for line2 in v:
v1.write(line2)
Обновление: Я удаляю первую строку CSV-листов и сохраняю ее как новый лист. Теперь мне нужно их объединить. Обновленный код:
import time
import os
import os, re
import logging
import glob
import csv
for CSV in os.listdir('C:\Users\XXXXX\Downloads'):
if re.match('Phase_6_Chromebooks', CSV):
print(CSV)
CSV1 = CSV
#remove the first 5 rows in the CSV file
with open('C:\Users\XXXXX\Downloads\' CSV1,'r') as f:
with open('C:\Users\XXXXX\Downloads\P6CB.csv','w') as f1:
next(f) # skip header line
next(f) # skip header line
next(f) # skip header line
next(f) # skip header line
next(f) # skip header line
for line1 in f:
f1.write(line1)
for CSV in os.listdir('C:\Users\XXXXX\Downloads'):
if re.match('Windows_Devices', CSV):
print(CSV)
CSV2 = CSV
#remove the first 5 rows in the CSV file
with open('C:\Users\XXXXX\Downloads\' CSV2,'r') as v:
with open('C:\Users\XXXXX\Downloads\WindowsDevices.csv','w') as v1:
next(v) # skip header line
next(v) # skip header line
next(v) # skip header line
next(v) # skip header line
next(v) # skip header line
for line2 in v:
v1.write(line2)
for CSV in os.listdir('C:\Users\XXXXX\Downloads'):
if re.match('Phase_4_Chromebooks', CSV):
print(CSV)
CSV3 = CSV
csv_files = ['C:\Users\XXXXX\Downloads\' CSV3 , 'C:\Users\XXXXX\Downloads\P6CB.csv' , 'C:\Users\XXXXX\Downloads\WindowsDevices.csv']
Комментарии:
1. откройте файл для чтения, прочитайте соответствующие строки в память, закройте файл, откройте файл для записи, запишите соответствующую строку. Или используйте временный файл, а затем скопируйте / переместите его в исходный файл, если файл слишком велик для чтения в память
2. запись в новые файлы, затем удаление старых файлов. есть ли какая-либо причина, по которой вы хотите записать в тот же файл?