【问题标题】:Removing old user directories [duplicate]删除旧用户目录 [重复]
【发布时间】:2021-06-21 18:28:45
【问题描述】:

我正在尝试创建一个 python 脚本来帮助清理我使用 powershell 创建的文件夹。这是一个目录,其中包含以用户命名的文件夹,供他们放入内容。 一旦他们离开我们的网站,他们的文件夹就会保留下来,并且为所有新来的员工创建一个文件夹。这意味着我们有超过 250 个文件夹,但只有 100 名在职员工。我有一个正在使用的测试文件夹,以便我可以让脚本正常工作,然后添加额外的位,例如将目录移动到旧位置,然后根据年龄删除它们。但目前我正在处理脚本的删除部分。到目前为止,我有下面的脚本,它运行没有错误,但它实际上并没有做任何事情,我不明白为什么.. 它应该读取我所有当前工作人员的 csv 文件,然后将其与文件路径中的文件夹进行比较,然后删除与 CSV 文件中的名称不匹配的所有文件夹。 CSV 文件是使用我用来创建它们的相同脚本从 powershell 生成的。

import os
import pandas as pd

path = "//servername/Vault/Users$"


flist = pd.read_csv('D:/Staff List.csv')

file_name = flist['fileName'].tolist()

for fileName in os.listdir(path):


#If file is not present in list
if fileName not in file_name:
    #Get full path of file and remove it
    full_file_path = os.path.join(path, fileName)
    os.remove(full_file_path)

【问题讨论】:

  • 那么,您的问题是什么?你已经很好地描述了你所处的情况,并展示了一些代码,但你没有说它有什么问题。你有错误吗?如果是这样,请edit您的问题包括完整的回溯。是否删除了错误的文件夹?给我们一个不依赖于您的文件系统和 CSV 文件内容的示例。
  • 这能回答你的问题吗? How to delete the contents of a folder?
  • “它运行没有错误,但它实际上并没有做任何事情,我不明白为什么..”这是我的问题,为什么它不删除测试路径中的文件夹?
  • 我很快就会阅读该链接 SuperStormer,我相信答案可能就在那里,谢谢。

标签: python


【解决方案1】:

使用shutil并递归删除所有旧用户目录及其内容。

import shutil
PATH = 'D:/user/bin/old_dir_to_remove'
shutil.rmtree(PATH)

【讨论】:

  • 我会用这个做一些测试,我会告诉你它是怎么回事。
  • 我提前为格式化道歉,我还在习惯堆栈溢出系统。我已经用下面的代码试过了。我在 D 盘中创建了一个名为“test”的文件夹,但遇到了一些回溯错误。导入 shutil path = 'D:/test' shutil.rmtree(path)
  • 错误回溯(最近一次调用最后):文件“C:\Program Files\Python39\lib\runpy.py”,第 197 行,在 _run_module_as_main return _run_code(code, main_globals, None, File" C:\Program Files\Python39\lib\runpy.py",第 87 行,在 _run_code exec(code, run_globals) 文件“C:\Program Files\Python39\lib\py_compile.py”,第 215 行,在 sys.exit(main()) 文件“C:\Program Files\Python39\lib\py_compile.py”,第 207 行,在 main compile(filename, doraise=True)
  • 文件“C:\Program Files\Python39\lib\py_compile.py”,第 142 行,在编译 source_bytes = loader.get_data(file) 文件“”,第 979 行, 在 get_data FileNotFoundError: [Errno 2] No such file or directory: '' [Finished in 1.6s]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 2016-11-15
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-06
相关资源
最近更新 更多