Python удаляет первую строку из 2 CSV-файлов и сохраняет их как в том же файле

#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. запись в новые файлы, затем удаление старых файлов. есть ли какая-либо причина, по которой вы хотите записать в тот же файл?