首页 > 解决方案 > 使用 Python 以递归方式将 .pgsql 重命名为 .sql 文件

问题描述

我正在尝试重命名 Windows 10 pro 上的 github repo 目录中的多个文件

文件扩展名是“.pgsql”(旧)和“.sql”(重命名为)

我正在使用 vscode(最新)和 python 3.7(最新)

我可以做到,一次一个文件夹,但是每当我尝试了我在这里查找的任何递归目录代码时,我都无法让它工作。

当前仅工作单个目录

#!/usr/bin/env python3
import os
import sys

folder = 'C:/Users/YOURPATHHERE'
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('.pgsql', '.sql')
       output = os.rename(infilename, newname)

例如,我想让它在一个目录中递归启动,并且仅在所有子目录以及 Windows 上更改指定为 .sql 的文件扩展名

folder = 'C:/Users/username/github/POSTGRESQL-QUERY/'

标签: pythonpython-3.xwindows

解决方案


你可以使用os.walk()

import os

folder = 'C:/Users/YOURPATHHERE'
for root, dirs, files in os.walk(folder):
    for filename in files: 
        infilename = os.path.join(root,filename)
        newname = infilename.replace('.pgsql', '.sql')
        output = os.rename(infilename, newname)

推荐阅读