作者kenduest (小州)
看板Linux
标题Re: [问题] Linux下Bash批次更改档名(数百、千个档)
时间Wed Aug 16 20:34:40 2017
我贡献一下 python code 提供参考:
# encoding: utf8
import os
import re
import sys
if len(sys.argv) == 2:
dest_path = sys.argv[1]
else:
sys.stderr.write("Usage: %s path\n\n" % os.path.basename(sys.argv[0]))
sys.exit(1)
if not os.path.exists(dest_path) or not os.path.isdir(dest_path):
sys.stderr.write("Error: %s not exist or not directory\n\n" % dest_path)
sys.exit(1)
pattern = r'^海贼王 第([0-9]+)集 繁体中文翻译.mp4$'
for item in os.listdir(dest_path):
result = re.match(pattern, item)
if result:
old_name = os.path.join(dest_path, item)
new_name = os.path.join(dest_path, "OnePiece v%s.mp4" % result.group(1))
print("%s --> %s\n" % (old_name, new_name))
os.rename(old_name, new_name)
要使用的话把上面程式码复制到编辑器内,记得排版要相同。比方储存成为 script.py 好了
就使用 python script.py 这样执行。程式会需要传入一个参数当指定路径,比方这样用:
python script.py mydirname
python script.py /home/user/dirname
提供参考,谢谢
上面是比较多功能,可以指定目录。若只有自己该层所在目录下简单改成:
# encoding: utf8
import os
import re
pattern = r'^海贼王 第([0-9]+)集 繁体中文翻译.mp4$'
for item in os.listdir("."):
result = re.match(pattern, item)
if result:
os.rename(item, "OnePiece v%s.mp4" % result.group(1))
--
如果真的爱一个作业系统 怎能不害怕不再能使用它 而我们必须接受现实
於是长大了 寂寞就是没有了机会再用它 比没有电脑还要寂寞
而那些点亮我们生命的作业系统 就彷佛电影中发生在暹逻的爱情故事
即使短暂使用也会刻骨铭心
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.117.155.17
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1502886883.A.7BC.html
1F:→ bamchisu: 这东西BASH就可以简单解决了,用不到python 08/16 21:07
2F:→ kenduest: 当然,用 python 只是刚好手痒而已 XD 08/16 21:13
3F:→ kenduest: 目前系统管理上复杂我用 python, 单纯我用 bash script 08/16 21:14
4F:→ kenduest: 就像是以前多台主机同时 ssh 要跑更新,以前是用 08/16 21:15
5F:→ kenduest: bash 用 for 来跑 ssh 来多个连线达成某个命令执行 08/16 21:15
6F:→ kenduest: 目前可用 ansible (也是python) 程式直接达成类似需求 08/16 21:16
7F:推 ddtsatan: 推 08/17 01:02
8F:推 Debian: 推荐文章! 08/17 05:22
9F:推 s8321414: 这篇会不会像程式版某篇文长出各种语言的版本XD 08/17 20:49
10F:→ kenduest: go lang 已经有人写了 XD 08/18 09:28
※ 编辑: kenduest (122.117.155.17), 08/18/2017 09:57:37