使用python删除位于桌面上的CSV工作表(获取错误UnicodeDecodeError:'utf-8')

时间:2019-06-25 20:07:29

标签: python pandas

删除整个Excel工作表(CSV逗号分隔)的最简单方法是什么?将工作表覆盖为空白也可以。

我需要将其自动化。它应在此循环结束时删除工作表。

到目前为止,我的代码:

file_name =r'C:\Users\Trading\Desktop\scott\test.csv'

while True:
    df=pd.read_csv(file_name, header=None, encoding="latin1")

    if file_name is not "":
        df=pd.read_csv(file_name, header=None)
        lastRow = df.iloc[-1]
        stock=(lastRow[0])
        price=(lastRow[3])

        print (stock, action, num_shares, price)
        os.remove(file_name)
        #csv_file.unlink()  #I also tried this way..

        print("file deleted")

更新错误消息

现在我收到错误UnicodeDecodeError:'utf-8'编解码器无法解码位置18的字节0xa0:无效的起始字节。

1 个答案:

答案 0 :(得分:1)

您要问的我的最佳猜测是如何遍历包含多个csv文件的目录,读取和处理每个文件然后删除它?首先,我说您应该在运行此代码之前对整个文件夹进行备份(并可能编写为您执行此备份的代码):

import pandas as pd
from pathlib import Path

folder = Path("C:/Users/Trading/Desktop/scott")
# Loop through all the csv files in the folder
for csv_file in folder.glob("*.csv"):

    # read and process the files
    df = pd.read_csv(csv_file, header=None)
    stock = df.iloc[-1, 0]
    price = df.iloc[-1, 3]
    print(stock, price) # Do you really only want to print? You don't want to save this data somewhere permanent???

    # Permanently delete the file
    csv_file.unlink() 

请注意,os.remove()可以正常工作。但是从python 3.4开始,pathlib是处理python中文件(而不是os)的正确方法。您使用.unlink()方法使用pathlib删除文件。

由于您从未在代码中定义它们,因此我遗漏了ibnumsharesaction ...