删除特殊目录Python(Windows)的内容

2024-04-19 13:39:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有相当基础的Python知识,不幸的是,它太基础了,我不知道如何做我想做的事情。我搜索了一下,找到了问题的一半答案。你知道吗

计划是删除文件夹的内容,但由于用户名不同,系统间的目录不同。假设目录是'C:\Users\USER\Documents\VideoEditor\JunkFiles',但我希望我的程序能尝试删除所有不同版本的文件。下面是一个示例列表: 'C:\Users\USER\Documents\VideoEditor09\JunkFiles' 'C:\Users\USER\Documents\VideoEditor10\JunkFiles' 'C:\Users\USER\Documents\VideoEditor11\JunkFiles'

所以基本上

不管用户名是什么,我怎么告诉它目录在哪里? 如何告诉它删除指定目录的内容,但保留文件夹(如果可能)?你知道吗

谢谢!

西奥。


Tags: 答案程序目录文件夹内容系统事情users
3条回答

您可以尝试以下方法:

import os
user = 'some_user_name'
videoEditors = ['VideoEditor09','VideoEditor10','VideoEditor11']
for i in videoEditors:
    os.chdir('C:\Users\%s\Documents\%s\JunkFiles'%(user,i))
    files = os.listdir('.')
    for file in files:
        os.remove(file)

我在这里使用的主要内容是Python os package和一个需要浏览的文件夹列表。而且'%s'是Pythonstring formatting的一部分。你知道吗

希望这有帮助!你知道吗

os.path.expanduser

>>> os.path.expanduser('~')
'C:\\Users\\falsetru'

您可以按以下方式访问用户的文档目录:

>>> import os
>>> documents = os.path.join(os.environ['USERPROFILE'], 'Documents')
>>> documents
'C:\\Users\\poke\\Documents'
>>> directories = [os.path.join(documents, 'VideoEditor{0}\\JunkFiles'.format(y)) for y in ('09', '10', '11')]
>>> directories
['C:\\Users\\poke\\Documents\\VideoEditor09\\JunkFiles', 'C:\\Users\\poke\\Documents\\VideoEditor10\\JunkFiles', 'C:\\Users\\poke\\Documents\\VideoEditor11\\JunkFiles']

然后,您可以循环遍历目录中的文件来删除它们,或者如果删除文件夹也可以(您可以在以后再次创建它们),也可以使用^{}

>>> import shutil
>>> for directory in directories:
        shutil.rmtree(directory)

相关问题 更多 >