当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 17 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2010-12-27 15:23 

注册: 2006-09-08 18:57
帖子: 115
送出感谢: 0 次
接收感谢: 2
代码:
#!/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)


因为在某些网站上传图片时,打开文件对话框只显示扩展名为小写的文件,而我的数码相机生成的图片扩展名为大写的JPG,会导至找不到文件。当文件很多时,每一个都手工更改会很累。

正好这两天在鼓捣Python,于是就想用Python写个脚本实现自动改名。《简明》差不多快看完了,觉得还有很多必需的东西不明白,特别是标准库的说明,都是E文。大量Google以后终于弄出了这个能工作的脚本。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2010-12-27 15:40 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
● less /usr/bin/rename


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2010-12-27 15:44 
头像

注册: 2007-02-02 18:14
帖子: 30702
系统: debian sid
送出感谢: 1
接收感谢: 34
难得,我以为ee来推销perl进来反对的 :em04


_________________
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2010-12-27 16:40 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
我是帮助别人学习的。提供思路。
:em04
看过这rename再说。再说。


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2010-12-27 16:47 

注册: 2006-09-08 18:57
帖子: 115
送出感谢: 0 次
接收感谢: 2
我重新发明了轮子?
可惜我看不懂perl代码。。。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2010-12-27 18:15 
头像

注册: 2008-07-29 8:01
帖子: 89
送出感谢: 0 次
接收感谢: 0 次
find -name "*.JPG"|xargs rename JPG jpg


_________________
http://ly50247.diandian.com


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2010-12-28 16:40 
头像

注册: 2009-04-11 23:46
帖子: 4130
系统: Arch Linux
送出感谢: 11
接收感谢: 124
man rename 写道:
To translate uppercase names to lower, you'd use

rename 'y/A-Z/a-z/' *


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc



_________________
评价: 3.7% tang.zhe
 
页首
 用户资料  
 
8 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2011-01-13 20:28 
头像

注册: 2008-03-23 0:39
帖子: 770
送出感谢: 0 次
接收感谢: 4
eexpress 写道:
我是帮助别人学习的。提供思路。
:em04
看过这rename再说。再说。

其他脚本对于perl-rename来说都是浮云,lol
可以比较下 :em11


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2011-01-13 20:48 
头像

注册: 2007-09-29 3:09
帖子: 5777
送出感谢: 0 次
接收感谢: 5
rikhtdss 写道:
我重新发明了轮子?
可惜我看不懂perl代码。。。

不,轮子起码是圆的...


_________________
HUNT Unfortunately No Talent...


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2011-05-27 20:15 
头像

注册: 2010-11-18 15:55
帖子: 1762
地址: Auir
系统: ubuntu16.04+win10
送出感谢: 8
接收感谢: 7
楼主这个脚本很实用,要是支持直接一键把所有大写改成小写就好了。windows不区分大小写的毛病把我害惨了 :em20 :em20


_________________
势不可去尽,话不可说尽,凡事太尽,缘分势必早尽。

生命不息,折腾不止!在折腾中进步!

dropbox邀请链接: https://db.tt/OMGJP72tMW


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2011-05-27 20:51 
头像

注册: 2009-04-11 23:46
帖子: 4130
系统: Arch Linux
送出感谢: 11
接收感谢: 124
ooinzaghi 写道:
楼主这个脚本很实用,要是支持直接一键把所有大写改成小写就好了。windows不区分大小写的毛病把我害惨了 :em20 :em20


Nautilus 用户的话可以使用用户脚本的,选中后右键里点两下就可以了。
[bash]
#!/bin/bash

for i in $@
do
rename 'y/A-Z/a-z/' "$i"
done
[/bash]


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2011-05-27 23:43 
头像

注册: 2010-11-18 15:55
帖子: 1762
地址: Auir
系统: ubuntu16.04+win10
送出感谢: 8
接收感谢: 7
引用:
选中后右键里点两下就可以了

求详解 :em06


_________________
势不可去尽,话不可说尽,凡事太尽,缘分势必早尽。

生命不息,折腾不止!在折腾中进步!

dropbox邀请链接: https://db.tt/OMGJP72tMW


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2011-05-28 13:14 
头像

注册: 2009-04-11 23:46
帖子: 4130
系统: Arch Linux
送出感谢: 11
接收感谢: 124
ooinzaghi 写道:
引用:
选中后右键里点两下就可以了

求详解 :em06
附件:
nautilus.png
nautilus.png [ 111.54 KiB | 被浏览 3084 次 ]



_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2011-05-28 19:28 
头像

注册: 2010-11-18 15:55
帖子: 1762
地址: Auir
系统: ubuntu16.04+win10
送出感谢: 8
接收感谢: 7
感谢楼上,已经成功了 :em11


_________________
势不可去尽,话不可说尽,凡事太尽,缘分势必早尽。

生命不息,折腾不止!在折腾中进步!

dropbox邀请链接: https://db.tt/OMGJP72tMW


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 批量转换文件扩展名大小写的python脚本
帖子发表于 : 2012-06-04 22:33 
头像

注册: 2010-07-15 13:31
帖子: 1401
送出感谢: 77
接收感谢: 23
感谢7楼!


_________________
Ubuntu 命令技巧: http://wiki.ubuntu.org.cn/index.php?title=UbuntuSkills&variant=zh-cn
Ubuntu 桌面指南: https://help.ubuntu.com//


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 17 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译