我试图安排一个循环,每分钟代码将帮助删除文件夹中的所有.docx文件。但是,我的代码实际上并没有删除文件夹中的任何.docx文件(我检查了路径是否正确,并运行了其他代码,比如计数文件数量,还为Mac上的终端添加了完整的磁盘访问权限),循环也收到了错误。
我的代码:
import os, os.path
import time
import schedule
csv_count = len(os.listdir("/Users/xxx/Desktop/FYP 1st Draft"))
def delectfiles():
for file in os.scandir("/Users/xxx/Desktop/FYP 1st Draft"):
if file.name.endswith(".docx"):
os.unlink("/Users/xxx/Desktop/FYP 1st Draft")
schedule.every().minute.do(delectfiles)
while True:
schedule.run_pending()
time.sleep(1)我所犯的错误:
Traceback (most recent call last):
File "/Users/xxx/PycharmProjects/Jedox_batch/Jedox.py", line 16, in <module>
schedule.run_pending()
File "/Users/xxx/PycharmProjects/Jedox_batch/venv/lib/python3.8/site-packages/schedule/__init__.py", line 780, in run_pending
default_scheduler.run_pending()
File "/Users/xxx/PycharmProjects/Jedox_batch/venv/lib/python3.8/site-packages/schedule/__init__.py", line 100, in run_pending
self._run_job(job)
File "/Users/xxx/PycharmProjects/Jedox_batch/venv/lib/python3.8/site-packages/schedule/__init__.py", line 172, in _run_job
ret = job.run()
File "/Users/xxx/PycharmProjects/Jedox_batch/venv/lib/python3.8/site-packages/schedule/__init__.py", line 661, in run
ret = self.job_func()
File "/Users/xxx/PycharmProjects/Jedox_batch/Jedox.py", line 11, in delectfiles
os.unlink("/Users/xxx/Desktop/FYP 1st Draft")
PermissionError: [Errno 1] Operation not permitted: '/Users/xxx/Desktop/FYP 1st Draft'如有任何建议,将不胜感激
发布于 2021-11-30 03:00:02
您没有将文件名附加到unlink命令中。我不熟悉os.scandir(),因此在下面的示例中将它更改为os.listdir():
def delectfiles():
for file in os.listdir("/Users/xxx/Desktop/FYP 1st Draft"):
if file.name.endswith(".docx"):
os.unlink(os.path.join("/Users/xxx/Desktop/FYP 1st Draft/", file))https://stackoverflow.com/questions/70163601
复制相似问题