Откройте CSV-файл с помощью Pandas и удалите, если есть только 1 строка - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть задача создать скрипт для ssh для списка 10 маршрутизаторов Cisco в неделю, проверять изменения конфигурации и отправлять уведомления.Итак, у меня есть сценарий, который регистрирует и запускает команду и отправляет ее в CSV.Я изменил, поэтому, если нет никаких изменений, все, что я имею в csv, будет, например: rtr0003 # - который является только именем маршрутизатора.Если произойдет изменение конфигурации, Excel будет иметь внутри, например:

enter image description here

Мой вопрос: как запустить панд, чтобы открыть каждый файл, и если он видиттолько одна строка / строка, чтобы удалить файл Excel, и если больше строк, чтобы пропустить его.

Вот как я пишу файлы:

files = glob.glob('*.csv')
for file in files:
    df=pd.read_csv(file)
    df=df.dropna()
    df.to_csv(file,index=False)
    df1=pd.read_csv(file,skiprows = 2)
    #df1=df1.drop(df1.tail(1))
    df1.to_csv(file,index=False)

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Вот решение с использованием панд:

import pandas as pd
import glob
import os

csv_files = glob.glob('*.csv')
for file in csv_files:
    df_file = pd.read_csv(file, low_memory = False)
    if len(df_file) == 1:
        os.remove(file)

Если вы используете файлы Excel, измените

glob.glob('*.csv')  

на

glob.glob('*.xlsx')

и

pd.read_csv(file, low_memory = False)

до

pd.read_excel(file)
0 голосов
/ 14 ноября 2018
import os    
import glob
import csv

files = glob.glob('*.csv')

for file in files:
    with open(file,"r") as f:
        reader = csv.reader(f,delimiter = ",")
        data = list(reader)
        row_count = len(data)

    if row_count == 1:
        os.remove(file)
...