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并输入它。但我不知道该做什么。
答案 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"))
我希望这有帮助!