Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python将.pgsql递归重命名为.sql文件_Python_Python 3.x_Windows - Fatal编程技术网

使用Python将.pgsql递归重命名为.sql文件

使用Python将.pgsql递归重命名为.sql文件,python,python-3.x,windows,Python,Python 3.x,Windows,我试图在Windows10Pro上重命名github repo目录中的多个文件 文件扩展名为.pgsql old和.sql rename to 我使用的是vscode最新版本和python 3.7最新版本 我可以这样做,一次一个文件夹,但每当我尝试任何递归目录代码时,我都无法让它工作 当前仅在单个目录下工作 !/usr/bin/env蟒蛇3 导入操作系统 导入系统 文件夹='C:/Users/YOURPATHHERE' 对于os.listdirfolder中的文件名: infilename=os

我试图在Windows10Pro上重命名github repo目录中的多个文件

文件扩展名为.pgsql old和.sql rename to

我使用的是vscode最新版本和python 3.7最新版本

我可以这样做,一次一个文件夹,但每当我尝试任何递归目录代码时,我都无法让它工作

当前仅在单个目录下工作

!/usr/bin/env蟒蛇3 导入操作系统 导入系统 文件夹='C:/Users/YOURPATHHERE' 对于os.listdirfolder中的文件名: infilename=os.path.joinfolder,文件名 如果不是os.path.isFileInfineName:是否继续 oldbase=os.path.splitextfilename newname=infilename.replace'.pgsql',.sql' 输出=os.renameinfilename,newname 例如,我希望它在一个目录中递归地启动,并在所有子目录中以及在windows上只更改指定为.sql的文件扩展名

文件夹='C:/Users/username/github/POSTGRESQL-QUERY/' 您可以使用os.walk


这非常有效,我稍微修改了它以排除一些目录,并从模块化文件中提取dir_exclude和dir_startdir,这样我就可以重用它们了
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)