2

我有相当基本的 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'

所以基本上,

无论用户名是什么,我如何告诉它目录在哪里?如何告诉它删除指定目录的内容,但将文件夹保留在那里(如果可能)?

谢谢!

西奥。

4

3 回答 3

0

os.path.expanduser

>>> os.path.expanduser('~')
'C:\\Users\\falsetru'
于 2013-06-22T14:05:21.473 回答
0

您可以像这样访问用户的文档目录:

>>> 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']

然后,您可以循环浏览目录的文件以删除它们,或者如果删除文件夹也可以(之后您可以再次创建它们),您也可以使用shutil.rmtree

>>> import shutil
>>> for directory in directories:
        shutil.rmtree(directory)
于 2012-12-05T18:10:17.907 回答
0

您可以尝试以下方法:

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 包和要浏览的所需文件夹列表。'%s' 也是 Python字符串格式化的一部分。

希望这可以帮助!

于 2012-12-05T17:59:38.920 回答