解压缩和重命名文件/文件夹

时间:2016-05-22 18:53:30

标签: python python-2.7 zip

python的新手。但在搜索并尝试解压缩某些文件夹后,将其重命名为不具有静态名称的文件夹。例如,文件是New_05222016。 #s是日期,总是会改变。我希望它是一个标记为" New"。

的解压缩文件夹

这是我到目前为止所拥有的。它将解压缩我的文件,但不会重命名它。

import zipfile,fnmatch,os

rootPath = r"C:/Users/Bob/Desktop/Bill"
pattern = '*.zip'
New = 'New*'


for root, dirs, files in os.walk(rootPath):
    for filename in fnmatch.filter(files, pattern):
        print(os.path.join(root, filename))
        zipfile.ZipFile(os.path.join(root, filename)).extractall(os.path.join(root, os.path.splitext(filename)[0]))

for root, dirs, files in os.walk(rootPath):
    for filename in fnmatch.filter(dir,New):
        os.rename(dir,'C:/Users/Bob/Desktop/Bill/New')

如果尝试其他方式。比如os.rename并输入它。但我不知道该做什么。

1 个答案:

答案 0 :(得分:0)

os.rename()将正常工作,只需确保指定完整路径。

我使用os.listdir()修改了你的例子,以存储解压缩目录的名称,然后使用os.rename()重命名它。我还用re来保留压缩文件的名称。

import zipfile,fnmatch,os, re

rootPath = r"C:\Users\Bob\Desktop\Bill"
pattern = '*.zip'
New = 'New*'

for root, dirs, files in os.walk(rootPath):
    for filename in fnmatch.filter(files, pattern):
        print(os.path.join(root, filename))
        zipfile.ZipFile(os.path.join(root,     filename)).extractall(os.path.join(root, os.path.splitext(filename)[0]))

for dirName in os.listdir(rootPath):
    if not re.search("zip", dirName):
        os.rename(os.path.join(rootPath, dirName), os.path.join(rootPath,"New"))

我希望这有帮助!