【问题标题】:Deleting or sending 2 Trash Duplicates Files删除或发送 2 个垃圾箱重复文件
【发布时间】:2021-04-24 16:27:22
【问题描述】:

我有一个 csv 文件,当我试图删除或发送到垃圾箱时,我想要做的是删除或发送到垃圾箱,除了一个之外,只有一个文件。下面显示了 csv 文件和代码的示例。我怎样才能完成这项工作?谢谢

import csv, send2trash
with open('Desktop.csv', newline='') as csvfile:
     spamreader = csv.reader(csvfile, delimiter=',', quotechar='|')
     for row in spamreader:
        if len(row)>2: 
                  
         print('More than 2 columns , '.join(row))
        else:
            print('Not more than 2, '.join(row))
                        
            send2trash.send2trash(row)
            continue

运行时我收到以下错误消息:

Traceback (most recent call last):
  File "C:/Users/mrdrj/Desktop/delete file using csv.py", line 11, in <module>
    send2trash.send2trash(row)
  File "C:\Users\mrdrj\AppData\Local\Programs\Python\Python39\lib\site-packages\send2trash\plat_win.py", line 59, in send2trash
    path = text_type(path, 'mbcs')
TypeError: decoding to str: need a bytes-like object, list found

【问题讨论】:

  • 您需要澄清“有重复项”的含义,并为您的 csv 文件输入您希望删除的内容以及原因。

标签: python python-3.x csv


【解决方案1】:

首先,我认为您的意思是扭转案件。如果有超过 2 列要删除除 1 之外的所有文件,对吗?如果只有 1 个,是否保留文件?

此代码删除除最左列之外的所有文件:

import csv, send2trash
with open('Desktop.csv', newline='') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=',', quotechar='|')
    for row in spamreader:
        if len(row) <= 1:
            continue
        for filename in row[1:]:
            print('Deleting file', filename)
            send2trash.send2trash(filename)

【讨论】:

  • 没错。感谢您的信息和帮助。我向你们大家学习了很多。再来一次。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 1970-01-01
  • 2017-08-07
  • 2018-04-26
相关资源
最近更新 更多