我试图以递归方式将所有.pyc.py
个文件重命名为.py
个文件。
我的代码:
import os,sys
def main():
ffolder = raw_input("folder >> ")
folder = 'C:\Users\Account Name\Desktop\Disney\toontown\\'+ ffolder +''
for filename in os.listdir(folder):
infilename = os.path.join(folder,filename)
if not os.path.isfile(infilename): continue
oldbase = os.path.splitext(filename)
newname = infilename.replace('.pyc.py', '.py')
output = os.rename(infilename, newname)
while True:
main()
它工作正常,但它需要我输入每个文件夹名称。我如何让它自己做呢?
答案 0 :(得分:2)
使用os.walk
以递归方式遍历目录树。
import os
import fnmatch
for dirpath, dirnames, filenames in os.walk(folder):
for f in filenames:
if f.endswith('.pyc.py'):
os.rename(os.path.join(dirpath, f), os.path.join(dirpath, f[:-7] + '.py'))
答案 1 :(得分:0)
我认为os.walk
是解决方案。它可以recursively
在subdirectories
中查找文件。试试这个:
import os,sys
def main():
ffolder = raw_input("folder >> ")
root = 'C:\Users\Account Name\Desktop\Disney\toontown\\'+ ffolder +''
for folder, subdirs, files in os.walk(root):
for filename in files:
infilename = os.path.join(folder,filename)
if not os.path.isfile(infilename): continue
oldbase = os.path.splitext(filename)
newname = infilename.replace('.pyc.py', '.py')
output = os.rename(infilename, newname)
while True:
main()
答案 2 :(得分:-1)
查看os.walk
。 [docs]
您需要在目录上调用重命名函数(例如doRename(dir)
)。让您的函数遍历目录,重命名所有文件,然后使用它找到的任何目录调用自己。