python获取文件后缀名及批量更新目录下文件后缀名的方法
python获取文件后缀名及批量更新目录下文件后缀名的方法

python获取⽂件后缀名及批量更新⽬录下⽂件后缀名的⽅法本⽂实例讲述了python获取⽂件后缀名及批量更新⽬录下⽂件后缀名的⽅法。
分享给⼤家供⼤家参考。
具体实现⽅法如下:1. 获取⽂件后缀名:复制代码代码如下:#!/usr/bin/pythonimport osdict = {}for d, fd, fl in os.walk('/home/ahda/Program/'):for f in fl:sufix = os.path.splitext(f)[1][1:]if dict.has_key(sufix):dict[sufix] += 1else:dict[sufix] = 1for item in dict.items():print "%s : %s" % item这⾥的关键是os.path.splitext()如abc/ef.g.h ,这⾥获取到的是h2. python查找遍历指定⽂件路径下指定后缀名的⽂件实例:复制代码代码如下:import osimport sysimport os.pathfor dirpath, dirnames, filenames in os.walk(startdir):for filename in filenames:if os.path.splitext(filename)[1] == '.txt':filepath = os.path.join(dirpath, filename)#print("file:" + filepath)input_file = open(filepath)text = input_file.read()input_file.close()output_file = open( filepath, 'w')output_file.write(text)output_file.close()3. 批量重命名⽬录中的⽂件后缀实例:复制代码代码如下:import osdef swap_extensions(dir, before, after):if before[:1] != '.': #如果参数中的后缀名没有'.'则加上before = '.' + beforethelen = -len(before)if after[:1] != '.':after = '.' + afterfor path, subdir, files in os.walk(dir):for oldfile in files:if oldfile[thelen:] == before:oldfile = os.path.join(path, oldfile)newfile = oldfile[:thelen] + afteros.rename(oldfile, newfile)print oldfile +' changed to ' + newfileif __name__ == '__main__':import sysif len(sys.argv) != 4:print 'Usage:swap_extension.py rootdir before after' sys.exit(1)swap_extensions(sys.argv[1], sys.argv[2], sys.argv[3])例⼦:将e:/py/test⽬录下.php结尾的⽂件重命名为.py E:py>python_cook e:/py/test .php .pye:/py/testtest.php changed to e:/py/testtest.pye:/py/test1.php changed to e:/py/test1.pye:/py/test2.php changed to e:/py/test2.py希望本⽂所述对⼤家的Python程序设计有所帮助。
python批量修改多个文件内容的方法

python批量修改多个文件内容的方法要批量修改多个文件内容,你可以使用Python的内置文件I/O操作和字符串处理功能。
以下是一个示例代码,它演示了如何批量修改多个文件中的特定内容:```pythonimport os要查找和修改的目录路径directory = "/path/to/directory"要查找的文件扩展名file_extension = ".txt"要查找和替换的字符串search_string = "old_string"replace_string = "new_string"遍历目录中的所有文件for filename in (directory):if (file_extension):打开文件并读取内容with open((directory, filename), "r") as file:file_content = ()查找和替换字符串file_content = file_(search_string, replace_string)将修改后的内容写回文件with open((directory, filename), "w") as file:(file_content)```在上面的示例中,你需要将`/path/to/directory`替换为要查找和修改的目录路径,将`.txt`替换为要查找的文件扩展名,将`old_string`替换为要查找和替换的字符串,以及将`new_string`替换为要替换成的新字符串。
运行代码后,它将遍历目录中的所有文件,并使用`replace()`方法查找和替换指定的字符串。
最后,它将修改后的内容写回原始文件中。
请注意,这个示例仅适用于文本文件。
如果你需要处理二进制文件或其他类型的文件,你可能需要使用不同的方法来读取和修改文件内容。
python文件和目录操作方法大全

python⽂件和⽬录操作⽅法⼤全⼀、python中对⽂件、⽂件夹操作时经常⽤到的os模块和shutil模块常⽤⽅法。
1.得到当前⼯作⽬录,即当前Python脚本⼯作的⽬录路径: os.getcwd()2.返回指定⽬录下的所有⽂件和⽬录名:os.listdir()3.函数⽤来删除⼀个⽂件:os.remove()4.删除多个⽬录:os.removedirs(r“c:\python”)5.检验给出的路径是否是⼀个⽂件:os.path.isfile()6.检验给出的路径是否是⼀个⽬录:os.path.isdir()7.判断是否是绝对路径:os.path.isabs()8.检验给出的路径是否真地存:os.path.exists()9.返回⼀个路径的⽬录名和⽂件名:os.path.split() eg os.path.split('/home/swaroop/byte/code/poem.txt') 结果:('/home/swaroop/byte/code', 'poem.txt')10.分离扩展名:os.path.splitext()11.获取路径名:os.path.dirname()12.获取⽂件名:os.path.basename()13.运⾏shell命令: os.system()14.读取和设置环境变量:os.getenv() 与os.putenv()15.给出当前平台使⽤的⾏终⽌符:os.linesep Windows使⽤'\r\n',Linux使⽤'\n'⽽Mac使⽤'\r'16.指⽰你正在使⽤的平台: 对于Windows,它是'nt',⽽对于Linux/Unix⽤户,它是'posix'17.重命名:os.rename(old, new)18.创建多级⽬录:os.makedirs(r“c:\python\test”)19.创建单个⽬录:os.mkdir(“test”)20.获取⽂件属性:os.stat(file)21.修改⽂件权限与时间戳:os.chmod(file)22.终⽌当前进程:os.exit()23.获取⽂件⼤⼩:os.path.getsize(filename)⼆、⽂件操作⽅法⼤全:1.os.mknod("test.txt") #创建空⽂件2.fp = open("test.txt",w) #直接打开⼀个⽂件,如果⽂件不存在则创建⽂件3.关于open 模式:w:以写⽅式打开,a:以追加模式打开 (从 EOF 开始, 必要时创建新⽂件)r+:以读写模式打开w+:以读写模式打开 (参见 w )a+:以读写模式打开 (参见 a )rb:以⼆进制读模式打开wb:以⼆进制写模式打开 (参见 w )ab:以⼆进制追加模式打开 (参见 a )rb+:以⼆进制读写模式打开 (参见 r+ )wb+:以⼆进制读写模式打开 (参见 w+ )ab+:以⼆进制读写模式打开 (参见 a+ )fp.read([size]) #size为读取的长度,以byte为单位fp.readline([size]) #读⼀⾏,如果定义了size,有可能返回的只是⼀⾏的⼀部分fp.readlines([size]) #把⽂件每⼀⾏作为⼀个list的⼀个成员,并返回这个list。
批量改后缀的方法

批量改后缀的方法
批量修改文件后缀名的方法有以下几种:
方法一:手动方式
1. 创建一个目标文件夹用于存放修改后的文件。
2. 将需要修改后缀名的文件复制到目标文件夹中。
3. 使用资源管理器打开目标文件夹。
4. 在文件夹中,按住“Shift”键同时右击鼠标,选择“重命名”或“打开命令窗口”。
5. 在重命名状态下,修改后缀名即可。
方法二:使用命令行方式
1. 打开命令提示符或终端窗口。
2. 使用“cd”命令切换到目标文件夹所在的目录。
3. 使用“for”循环和“ren”命令批量修改后缀名。
例如,将所有“.txt”后缀的文件改为“.docx”后缀,可以运行以下命令:
```bash
for file in .txt; do mv "$file" "${file%.txt}.docx"; done
```
4. 等待命令执行完成即可。
方法三:使用第三方软件
1. 下载并安装第三方软件,如“优速文件批量重命名”。
2. 打开软件并选择“文件重命名”功能。
3. 点击【添加文件】或【添加目录】按钮,将需要修改后缀的文件全部添加到软件中。
4. 在左侧进行设置,命名方式选择“替换”或者“插入”;在下面设置扩展名,变更方式选择“替换”,替换内容右边输入需要修改的后缀名,替换内容右边输入修改后的后缀名。
在右边可以对设置效果进行实时预览。
5. 设置完成后点击右上角红色按钮启动软件,完成操作后软件会弹出“重命名成功”的提示框。
获取文件后缀的方法

获取文件后缀的方法在计算机科学中,我们经常需要处理文件。
文件是存储在计算机上的一组相关数据的集合。
文件名是文件的标识符,它通常由两部分组成:文件名和文件后缀。
文件后缀是文件名的最后一部分,用来表示文件的类型。
在本文中,我们将讨论获取文件后缀的几种常见方法。
方法一:使用字符串操作获取文件后缀的一种简单方法是使用字符串操作。
我们可以使用字符串函数来提取文件名中的后缀部分。
首先,我们需要找到文件名中的最后一个点(.)的位置,然后将其后的部分截取出来即可。
以下是使用Python语言实现的示例代码:```filename = "example.txt"dot_index = filename.rfind('.')if dot_index != -1:extension = filename[dot_index+1:]print("文件后缀为:" + extension)else:print("文件名无后缀")```上述代码中,我们使用了字符串的`rfind()`方法来查找最后一个点的位置。
如果找到了点,则使用切片操作将点后的部分提取出来。
如果文件名中没有点,则说明该文件名无后缀。
方法二:使用正则表达式正则表达式是一种用来匹配字符串的强大工具。
我们可以使用正则表达式来匹配文件名中的后缀部分。
以下是使用Python语言实现的示例代码:```import refilename = "example.txt"pattern = r'\.(\w+)$'match = re.search(pattern, filename)if match:extension = match.group(1)print("文件后缀为:" + extension)else:print("文件名无后缀")```上述代码中,我们使用了正则表达式的`\w`字符类来匹配字母、数字和下划线。
批量更改文件后缀名的方法

批量更改文件后缀名的方法一、简介文件后缀名是用来标识文件类型的一种方式,不同的后缀名对应不同的文件格式。
有时候我们可能需要批量更改文件的后缀名,例如将一批图片文件的后缀名从.jpg 改为.png。
本文将介绍几种常见的方法来实现批量更改文件后缀名的操作。
二、使用命令行批量更改后缀名1. 查看文件后缀名在开始批量更改文件后缀名之前,我们需要先了解当前文件夹中的文件后缀名是什么。
可以使用以下命令来查看:dir /b /a-d *.* > filelist.txt该命令将当前文件夹中的所有文件名保存到一个名为filelist.txt的文本文件中。
2. 批量更改后缀名在了解了当前文件夹中的文件后缀名之后,我们可以使用以下命令来批量更改后缀名:for /f "delims=" %i in (filelist.txt) do ren "%i" "%~ni.newext"其中,filelist.txt是保存了文件名的文本文件,newext是你想要更改的新后缀名。
三、使用批处理脚本批量更改后缀名1. 创建批处理脚本我们可以使用批处理脚本来批量更改文件后缀名。
首先,打开一个文本编辑器,将以下代码粘贴到文本编辑器中:@echo offsetlocal enabledelayedexpansionset "folder=%~1"set "oldext=%~2"set "newext=%~3"for /r "%folder%" %%f in (*.%oldext%) do (set "filename=%%~nf"ren "%%f" "!filename!.%newext%")然后,将该文件保存为change_extension.bat。
使用某个文件夹下的所有文件去替换另一个文件夹下及其子文件夹下存在的同名文件(Python实现)

使⽤某个⽂件夹下的所有⽂件去替换另⼀个⽂件夹下及其⼦⽂件夹下存在的同名⽂件(Python实现)值此新年即将到来之际,在这献上今年最后⼀篇⽂章.产⽣这个需求是在项⽬的⼀次图标替换上,当时给了我⼀堆新图标要替换原来的⽼图标,可是原来的⽼图标分布在某个⽂件夹下的各个⼦⽂件夹下⾯,⽽新图标全是在同⼀个⽬录下的. ⼿动替换的话,只能是搜索⽂件名后替换,但是⽂件很多太⿇烦了,没找到现成的⼯具可以实现我的需求.于是有了下⾯这个脚本,正好熟悉下刚刚学会的Python. 如果有⼈知道有什么⼯具可以完成的话不妨留⾔告知:).下⾯脚本实现的就是在dest⽬录及其⼦⽬录下⾯,寻找和src⽬录下的⽂件对应的同名⽂件,如果找到唯⼀的⼀个同名⽂件,⽤src⾥⾯的新⽂件替换dest⾥⾯对应的⽼⽂件. 如果没找到同名或有多个同名的,就忽略.因为这种情况下需要⼈⼯接⼊是否替换,不过这样⼯作量已经少了很多了.代码通过扫描⼀遍dest⽬录及其⼦⽬录,建⽴了以⽂件名为索引,⽂件所在⽬录名为键值的倒排索引. 然后对src⽬录下的每个⽂件名去刚刚建⽴的倒排索引中寻找键值,如果键值中刚好只有⼀个⽬录名,说明找到了对应的唯⼀同名⽂件,替换之.其他的忽略.代码如下:代码#!/usr/bin/env python# coding:UTF-8import os,sys,shutilfrom os import pathdef findandreplace(src,dest):srcfiles = os.listdir(src)destfilesdict = {}#处理⽬标路径下(含⼦⽬录下)的所有⽂件for root,dirs,files in os.walk(dest):# 记录每个⽂件名所在的路径,多个同名⽂件则会有多个不同路径.# 这样就⽣成了⽂件名到⽂件所在路径的⼀个倒排索引for onefile in files:# 若该⽂件名的键值还未创建则先创建if onefile not in destfilesdict:destfilesdict[onefile] = []destfilesdict[onefile] += [root]multisamename = []; # 存储⽬标⽬录及其⼦⽬录下有多个同名⽂件的⽂件名for srcfile in srcfiles:fullsrcfile = os.path.join(src,srcfile)if os.path.isfile(fullsrcfile):if srcfile in destfilesdict:if len(destfilesdict[srcfile])>1:multisamename += [srcfile]else:# 有且只有唯⼀的⼀个同名⽂件,那么肯定是要替换的那个shutil.copy(fullsrcfile,destfilesdict[srcfile][0]+'/'+srcfile)print srcfile + ' replace success.'print'following files has more than one in dest directory, replace skipped.'print'\n'.join(multisamename);if__name__ == "__main__":args = sys.argvif len(args) > 2:src = args[1]dest = args[2]print"all files under the "+dest+\"(including the subdirectory) will be replaced by the files under " +\src+" where they have the same name."if raw_input('Sure(y/n?): ') == 'y':findandreplace(src,dest)else:print"Not enough arguments!"测试代码如下:代码#!/usr/bin/env python# coding:UTF-8import os,sysimport shutilimport findandreplacerootdir = 'd:/test/'testsrcdir = 'testsrc'testdestdir = 'testdest'testfile = { 'notexist' : ['001','002','003','004','005'], # 替换⽬标不存在的⽂件'onlyone' : ['101','102','103','104','105'], # 有唯⼀对应的⽂件存在的'morethanone':['201','202','203','204','205']} # 多于⼀个同名存在的testfileext = '.txt'# clear old test filesshutil.rmtree(os.path.join(rootdir,testsrcdir),True)shutil.rmtree(os.path.join(rootdir,testdestdir),True)# generate src filesos.makedirs(os.path.join(rootdir,testsrcdir))for key,values in testfile.iteritems():for filestr in values:srcfile = open(os.path.join(rootdir,testsrcdir,filestr+testfileext),'w')srcfile.write(filestr+'srcfile')srcfile.close()# generate dest filesos.makedirs(os.path.join(rootdir,testdestdir))for key,values in testfile.iteritems():if key == 'notexist':passelif key == 'onlyone':for filestr in values:newdir = os.path.join(rootdir,testdestdir,filestr)os.makedirs(newdir)srcfile = open(os.path.join(newdir,filestr+testfileext),'w')srcfile.write(filestr+'destfile')srcfile.close()elif key=='morethanone':for filestr in values:newdir = os.path.join(rootdir,testdestdir,filestr)os.makedirs(newdir)srcfile = open(os.path.join(newdir,filestr+testfileext),'w')srcfile.write(filestr+'destfile')srcfile.close()srcfile = open(os.path.join(rootdir,testdestdir,filestr+testfileext),'w')srcfile.write(filestr+'destfile')srcfile.close()findandreplace.findandreplace(os.path.join(rootdir,testsrcdir),os.path.join(rootdir,testdestdir)) Python真是提⾼效率的利器哈.。
批量更改文件后缀名的方法

批量更改文件后缀名的方法在日常的电脑使用过程中,我们经常会遇到需要更改文件后缀名的情况。
例如,我们可能希望将一批图片文件的后缀名从.jpg改为.png,或者将一系列音频文件的后缀名从.mp3改为.wav。
这时,如果要一个个手动更改文件后缀名,无疑是非常麻烦和耗时的。
幸运的是,我们可以通过使用一些简单的方法来批量更改文件后缀名,提高我们的工作效率。
下面将介绍几种常见的方法。
方法一:使用命令行批量更改文件后缀名1. 打开命令提示符窗口(Win+R,输入cmd,回车)。
2. 进入要更改后缀名的文件所在的目录。
使用“cd”命令切换目录,例如:cd D:\Pictures。
3. 输入命令“ren *.* *.新后缀名”,其中“*.*”表示当前目录下的所有文件,“新后缀名”表示你想要更改的新的文件后缀名。
例如,要将所有.jpg文件更改为.png文件,可以输入命令“ren *.jpg *.png”。
4. 按下回车键,命令行窗口将显示出更改后的文件列表。
方法二:使用批处理文件批量更改文件后缀名1. 新建一个文本文件,例如“change_extension.bat”。
2. 打开文本文件,输入命令“ren *.* *.新后缀名”。
3. 将“新后缀名”替换为你想要更改的新的文件后缀名。
例如,要将所有.jpg文件更改为.png文件,可以输入命令“ren *.jpg *.png”。
4. 保存文本文件,并将文件后缀名修改为“.bat”。
5. 将该批处理文件放在要更改后缀名的文件所在的目录。
6. 双击运行批处理文件,文件后缀名将被批量更改。
方法三:使用专业的文件批量重命名工具除了使用命令行或批处理文件外,我们还可以使用一些专业的文件批量重命名工具来更改文件后缀名。
这些工具通常提供了更多的选项和功能,可以更方便地批量处理文件。
总结:通过命令行、批处理文件或专业的文件批量重命名工具,我们可以轻松地实现批量更改文件后缀名的操作。
这些方法简单易行,能够大大提高我们的工作效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文实例讲述了python获取文件后缀名及批量更新目录下文件后缀名的方法。
分享给大家供大家参考。
具体实现方法如下:
1. 获取文件后缀名:
复制代码代码如下:#!/usr/bin/python
import os
dict = {}
for d, fd, fl in os.walk('/home/ahda/Program/'):
for f in fl:
sufix = os.path.splitext(f)[1][1:]
if dict.has_key(sufix):
dict[sufix] += 1
else:
dict[sufix] = 1
for item in dict.items():
print "%s : %s" % item
这里的关键是os.path.splitext()
如abc/ef.g.h ,这里获取到的是h
2. python查找遍历指定文件路径下指定后缀名的文件实例:
复制代码代码如下:import os
import sys
import os.path
for dirpath, dirnames, filenames in os.walk(startdir):
for filename in filenames:
if os.path.splitext(filename)[1] == '.txt':
filepath = os.path.join(dirpath, filename)
#print("file:" + filepath)
input_file = open(filepath)
text = input_file.read()
input_file.close()
output_file = open( filepath, 'w')
output_file.write(text)
output_file.close()
3. 批量重命名目录中的文件后缀实例:
复制代码代码如下:import os
def swap_extensions(dir, before, after):
if before[:1] != '.': #如果参数中的后缀名没有'.'则加上
before = '.' + before
thelen = -len(before)
if after[:1] != '.':
after = '.' + after
for path, subdir, files in os.walk(dir):
for oldfile in files:
if oldfile[thelen:] == before:
oldfile = os.path.join(path, oldfile)
newfile = oldfile[:thelen] + after
os.rename(oldfile, newfile)
print oldfile +' changed to ' + newfile
if __name__ == '__main__':
import sys
if len(sys.argv) != 4:
print 'Usage:swap_extension.py rootdir before after' sys.exit(1)
swap_extensions(sys.argv[1], sys.argv[2], sys.argv[3]) 例子:将e:/py/test目录下.php结尾的文件重命名为.py E:py>python_cook e:/py/test .php .py
e:/py/testtest.php changed to e:/py/testtest.py
e:/py/test1.php changed to e:/py/test1.py
e:/py/test2.php changed to e:/py/test2.py
希望本文所述对大家的Python程序设计有所帮助。
更多信息请查看IT技术专栏。