用Pandas打开CSV文件,如果只有1行,则删除

时间:2018-11-14 10:45:18

标签: python pandas opencsv

我的任务是创建一个脚本,以每周一次SSH到10个Cisco路由器的列表,并检查配置更改并发送通知。因此,我已准备好记录并运行命令并将其发送到csv的脚本。我已经进行了修改,因此如果没有更改,我在csv中的所有内容将例如: rtr0003#-仅路由器名称。如果将更改conf,则excel将包含在其中,例如:

enter image description here

我的问题是如何运行pandas打开每个文件,以及是否仅一行/行删除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 :(得分:1)

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)

答案 1 :(得分:1)

这是使用熊猫的解决方案:

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)