代码: 全选
#!/usr/bin/env python
#-*-coding:utf8 -*-
#filename: extswap.py
import os
from sys import argv
from glob import glob
if len(argv) < 2 or len(argv) >3 or not argv[1].startswith('-'):
print '''输入错误!正确的语法为:
extswap.py -option [path]
-option 指定扩展名
path 指定要修改的目录(可选,默认为当前目录)
本程序可以将指定目录下的指定文件类型的扩展名进行大小写转换
原因是某些网站只允许上传扩展名为小写的jpg、gif等文件。'''
else:
ext_name = argv[1][1:]
if len(argv) == 2:
filepath = os.getcwd()
else:
if argv[-1].startswith('/'): #判断是相对路径还是绝对路径
filepath = argv[-1]
else:
filepath = os.getcwd() + os.sep + argv[-1]
if filepath[-1] != os.sep:
filepath += os.sep
def fun(path):
for fn in glob(path + '*'):
if os.path.isdir(fn):
fun(fn + os.sep) #如果检测到子目录则递归执行
else:
if fn[-len(ext_name):] != ext_name: #忽略不是指定扩展名的文件
continue
realpath = os.path.dirname(os.path.abspath(fn)) #探测文件路径
newfilename = os.path.basename(fn)[0:-len(ext_name)] +\
ext_name.swapcase() #组装新文件名,一定有更简单的办法,不过我现在还不知道:-(
newfn = realpath + os.sep + newfilename
os.rename(fn,newfn)
print fn,'改名为:\n',newfn
fun(filepath)
正好这两天在鼓捣Python,于是就想用Python写个脚本实现自动改名。《简明》差不多快看完了,觉得还有很多必需的东西不明白,特别是标准库的说明,都是E文。大量Google以后终于弄出了这个能工作的脚本。