Chinaunix首页 | 论坛 | 博客
  • 博客访问: 683052
  • 博文数量: 95
  • 博客积分: 1773
  • 博客等级: 上尉
  • 技术积分: 1653
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-17 23:28
文章分类
文章存档

2018年(2)

2017年(10)

2016年(7)

2015年(48)

2014年(2)

2013年(2)

2012年(2)

2011年(7)

2010年(7)

2009年(3)

2008年(1)

2007年(4)

分类: 信息化

2015-01-20 09:40:32

很多时候通过浏览器下载的有中文名字的文件,在存储时文件名会变成含有%数字 等的文件名,这样不利于再次使用,所以需要修改,很多时候利用工具一次下载很多后要一个一个对应起来也很麻烦,所以需要一个工具进行批量的更改。

直接用bash工具因为不具有URI解码的能力,所以不方便,最终借助python生产对应的解码文件修改,所以过程分成两部分,含有2段脚本(理论上完全可以用python完成,但我是在window下修改,bash利用的git bash,所以还是两段比较保险)
python 的urllib包中的unquote功能模块可以对编码的URI进行解码,所以可以直接利用来进行处理。
很简单的代码renname.sh:

点击(此处)折叠或打开

  1. #!/bin/bash
  2. #主bash程序,需要显式调用python来获取python执行结果,如果在linux下python已经加入了程序路径搜索,可以省略相关调用路径信息,甚至直接执行python脚本
  3. alist=`ls -1`
  4. for afile in ${alist};do
  5.   outfile=$( c:/python27/python.exe ../uridecode/uridecode.py "${afile}" )
  6.   echo "${outfile}"
  7.   #mv "${afile}" "${outfile}"
  8. done
uridecode.py内容:

点击(此处)折叠或打开

  1. #*---coding: utf8 ---*
  2. #根据传入的URIencode内容解析出原始内容并返回
  3. from urllib import unquote
  4. import sys

  5. def main(argv):
  6.   arg=
  7.     print unquote(argv[1])
  8. if __name__ =='__main__':
  9.     main(sys.argv)





阅读(1097) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~