python修改文件后缀名

本文介绍了一段代码在处理文件目录时的优化过程,包括遍历目录、解析文件名、并根据特定条件更新文件后缀名。重点讨论了Python中对可变对象和不可变对象引用的不同处理方式,并通过实例展示了如何使用os.path.splitext()函数获取文件后缀名,以实现高效且准确的文件管理操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不要小看这段代码哦。我还从中收获不少呢。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import os
import string
dirName = "./code/demo/"
li=os.listdir(dirName)
for filename in li:
    newname = filename
    newname = newname.split(".")
    if newname[-1]=="txt":
        newname[-1]="html"
        newname = string.join(newname,".")
        filename = dirName+filename
        newname = dirName+newname
        os.rename(filename,newname)
        print newname,"updated successfully"

如果你这样写:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import os
import string
dirName = "./code/demo/"
li=os.listdir(dirName)
for filename in li:
    #newname = filename
    newname = newname.split(".")
    newname = filename      #在这后面修改newname也直接修改了filename
    if newname[-1]=="txt":
        newname[-1]="html"
        newname = string.join(newname,".")
        filename = dirName+filename
        newname = dirName+newname
        os.rename(filename,newname)
        print newname,"updated successfully"

因为python里面对传值和引用传值有非常诡异的“搞法”

如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象——相当于通过“传值'来传递对象。

1
2
3
4
5
6
files=os.listdir(".")
   for filename in files:
       li=os.path.splitext(filename)
       if li[1]==".html":
           newname=li[0]+".htm"
           os.rename(filename,newname)
原来系统有自带的os.path.splitext( )来获取后缀名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值