python 第一个程序 批量修改文件名

mac2022-06-30  28

helloworld 算第零个程序,哈哈哈哈

第一次写python程序 新奇的地方

文件路径要用/表示   D:/test/    因为 \ 是转义字符   只能换成  /  或  \\

print函数一样  print(XXXXXXXX)

输入函数 input ('请输入一些字') 返回一个字符串 所以应该这样用 a = input ('请输入一些字')

各种功能需要导入模块 import  例如本程序使用了  import os 来操作 文件

获取当前程序所在目录绝对路径 path = os.getcwd()  

获取当前目录文件列表 fileList = os.listdir(path)

缩进不只是为了美观,还用来表示for  if 的开始结束

例如

for :

     循环内容1

     循环内容2

不循环内容

无理由缩进被认为是错误 例如:

    import os   #哈哈前面加个缩进就非法了

 

程序开始--------------------------------------------------------------------------------------------

import os #获取本文件所在路径 path = os.getcwd() print(path)

#获取扩展名 xxx = input('请输入扩展名') print(xxx)

#获取文件名 filename = input('请输入批量后的文件名') print(filename)

#获取该目录下所有文件,存入列表中 fileList=os.listdir(path)

ifile=0 #读取到第几个文件了 ofile=1 #已经输出了几个文件了 for i in fileList:     if(i.endswith('.'+xxx)):         print('找到一个'+i)         #设置旧文件名(就是路径+文件名)         oldname=path+ os.sep + fileList[ifile]   # os.sep添加系统分隔符              #设置新文件名         newname=path+ os.sep +filename+str(ofile).zfill(2)+'.'+xxx              os.rename(oldname,newname)   #用os模块中的rename方法对文件改名         print(oldname,'======>',newname)         ofile+=1     ifile+=1     

程序结束--------------------------------------------------------------------------------------------

程序运行方法  安装号python并配置好环境变量后

 复制文本到一个文本编辑器,保存成XXX.py  双击执行 就可以把这个py文件所在目录的文件批量重命名

 

2019-10-03更新

读取程序名 分析出输出文件名 序号的位数 扩展名

程序开始--------------------------------------------------------------------------------------------

#本程序 读取自己的文件名  例如_Ax.B.py #将同目录下的 扩展名为B的文件 重命名为A加上x位序号

#coding=utf-8 import os #获取本文件所在路径 path = os.getcwd() print('所在位置:'+path)

#获取文件全名 fullname = os.path.basename(__file__) print('程 序 名:'+fullname)

print('---------------------------------------------------------') #获取输出文件名   filename = fullname.split('.')[0][1:-1] print('输出名为:'+filename)

#获取编号位数 fillcount = fullname.split('.')[0][-1:] print('编号位数:'+fillcount)

#获取扩展名 xxx = fullname.split('.')[1] print('扩展名为:'+xxx) print('---------------------------------------------------------')

#获取该目录下所有文件,存入列表中 fileList=os.listdir(path)

ifile=0 #读取到第几个文件了 ofile=1 #已经输出了几个文件了 for i in fileList:     if(i.endswith('.'+xxx)):         #设置旧文件名(就是路径+文件名)         oldname=path+ os.sep + i   # os.sep添加系统分隔符              #设置新文件名         newname=path+ os.sep + filename + str(ofile).zfill(int(fillcount)) + '.' + xxx              os.rename(oldname,newname)   #用os模块中的rename方法对文件改名         print(oldname,'==>',newname)         ofile+=1     ifile+=1 input("按 <enter>结束程序")  

程序结束--------------------------------------------------------------------------------------------

涉及知识点

1,字符串截取

str = ‘0123456789’ print str[0:3] #截取第一位到第三位的字符 print str[:] #截取字符串的全部字符 print str[6:] #截取第七个字符到结尾 print str[:-3] #截取从头开始到倒数第三个字符之前 print str[2] #截取第三个字符 print str[-1] #截取倒数第一个字符 print str[::-1] #创造一个与原字符串顺序相反的字符串 print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符 print str[-3:] #截取倒数第三位到结尾 print str[:-5:-3] #逆序截取,具体啥意思没搞明白? 012 0123456789 6789 0123456 2 9 9876543210 78 789 96

 

__file__ 是获取文件路径包括文件名,在sys.path 返回相对路径,反之返回绝对路径

 

os.path.basename  从文件路径中截取文件名

 

split('.') 将一个字符串 用'.' 作文分隔符分成一个数组

最新回复(0)