python-3.x - 尝试删除多个目录时出错
问题描述
我正在尝试创建一个脚本来自动删除我处理的已关闭支持案例的目录。我想我有一个可行的解决方案,尽管我确信代码可能更漂亮。这很丑,因为我不是开发人员:
import pandas as pd
import os
import shutil
cases_dir = input("Please enter your files directory: ")
cases_list = os.listdir(cases_dir)
for name in cases_list:
print(name, sep='\n')
open_cases = pd.read_csv(r"cases.csv")
open_cases.columns = ["Number", "Product", "Subject", "Customer Contact", "Customer Name", "State", "Internal Status", "Follow up", "Case Priority", "Updated", "Updated by", "Days open"]
open_cases = open_cases[["Number"]]
print(open_cases, sep="\n")
list_a = cases_list
list_b = open_cases
x = (set(list_a)-set(list_b))
print(sorted(x)))
shutil.rmtree(x, ignore_errors=False, onerror=None)
我从两者都得到了一个案例列表,为了简洁起见,我删除了打印声明。这是完整的错误:
Traceback (most recent call last):
File "C:/Users/me/PycharmProjects/myproject/extract_cases.py", line 25, in <module>
shutil.rmtree(x, ignore_errors=False, onerror=None)
File "C:\Python37\lib\shutil.py", line 506, in rmtree
if os.path.islink(path):
File "C:\Python37\lib\ntpath.py", line 231, in islink
st = os.lstat(path)
TypeError: lstat: path should be string, bytes or os.PathLike, not set
Process finished with exit code 1
谢谢你的帮助!
解决方案
shutil.rmtree
等待string
或类型,但您的变量bytes
是a 。os.PathLike
x
set
您可以使用循环遍历您的set
对象for
。您可以在下面看到一个示例。
代码:
x = set(list_a)-set(list_b)
print(sorted(x))
for path in x:
shutil.rmtree(path, ignore_errors=False, onerror=None)
推荐阅读
- javascript - 在 NativeScript 应用程序中与 TextField 交互时停止键盘覆盖
- database-normalization - 这个模式标准化到什么级别?
- node.js - 自签名证书:我缺少浏览器和服务器之间的关系
- html - 为什么当我在手机或 Safari 上查看我的网页时,我的 CSS 网格和图像弹性框显示空白?
- google-signin - Google 登录返回 SIGN_IN_FAILED 12500 的可能原因
- javascript - 自调用函数会干扰 window.onload,除非
- php - 在 PHP 中搜索 MySQL 中的 JSON 数据
- javascript - 问题在 Javascript 中列出对象属性
- google-bigquery - BigQuery 集群字段用法/值不清楚
- php - 使用 Web 连接器集成到 Quickbooks 时在 QBXML 中使用通配符