首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用python删除桌面上的CSV工作表(获取错误UnicodeDecodeError:'utf-8')

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

Stack Overflow用户
提问于 2019-06-26 04:07:30
回答 1查看 190关注 0票数 1

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

我需要这是自动化的。它应该删除此循环末尾的工作表。

到目前为止我的代码如下:

代码语言:javascript
复制
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 :起始字节无效。

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 04:27:23

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

代码语言:javascript
复制
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()会工作得很好。但是从Python3.4开始,在python (而不是os)中,pathlib是处理文件的正确方式。您可以使用pathlib使用.unlink()方法删除文件。

我省略了ibnumsharesaction,因为您从未在代码中定义过它们……

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56761296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档