bat和python批量重命名文件的实现代码
作者:mdxy-dxy 发布时间:2023-10-07 02:11:53
最近从某网站下载了一批文档,但是文件是用数字串命名的文档(很多图书馆都这样吧),现在我也下载完了这些文件,也有这些文件的列表,就是不能一个一个的把文件给重命名吧所以从网上找了这几个脚本。
一、使用bat脚本(windows系统默认可用)
打开记事本,将这些代码写入记事本,另存为xx.bat文件(注意后缀名,很多小白保存成了xx.bat.txt,因为txt是隐藏的,以为不行)
@echo off
for /r “d:\pdf” %%a in (*.pdf) do (
for /f “tokens=1,2 delims= ” %%b in (1.txt) do (
if “%%~nxa”==”%%b” ren “%%a” “%%c.pdf”
)
)
要求文件放在d:/pdf文件夹下,文件后缀为.pdf,文件列表放在1.txt下面,txt保存为微软下的默认ANSI格式就好,内部内容格式为以下格式:
ts001003.pdf 世界科技全景百卷书(3)近代科技
ts001004.pdf 世界科技全景百卷书(4)蒸汽机带来的革命
ts001005.pdf 世界科技全景百卷书(5)现代科技
有需要的可以适当修改。
二、使用python脚本(windows系统需安装python 3.50 编译软件,约30M,linux估计需要升级python到3.50)
这个脚本是我花了好几个小时写的一个脚本(虽然学了好久编程,但是要流畅的写一个比较好的还是不顺手)
打开记事本,将这些代码写入记事本,另存为xx.bat文件(注意后缀名,很多小白保存成了xx.bat.txt,因为txt是隐藏的,以为不行)
#!/bin/env python
# -*- coding: utf-8 -*-
"""从某网站下载了一批文档,但是文件是用数字串命名的文档(很多图书馆都这样吧),
也有文档列表,所以写了一个脚本来重命名批文件
"""
__author__ = 'rublog'
import os
#1.txt文档要求每个文档一行,保存的时候必须为ANSI格式,前面是列表文档名含后缀(就是网站上文件名,一串数字
#或者字母什么的),空一格,然后是文档的真名(不带后缀)
#get_list这个从1.txt文本文件中一行一行的读取文件,去掉换行符,然后调用doc_rename
#函数
def get_list():
#尝试不同的编码来自知乎 十五
#https://www.zhihu.com/question/30070752/answer/46684320
decode_list=["utf-8",'gb18030', 'ISO-8859-2','gb2312',"gbk","Error" ]#编码集
#GBK不如GB18030覆盖得好,容易出错,故首先尝试GB18030。
for k in decode_list:#编码集循环
try:
book_list = open('1.txt', encoding=k)
#打开路径中的文本
line = book_list.readline()
while line:
if os.name == 'nt':
line = line.strip('\r\n')
else:
line = line.strip('\n')
doc_rename(line)
line = book_list.readline()
break#打开路径成功跳出编码匹配
except:
if k == "Error":#如果碰到这个程序终止运行
print("had no way to decode")
raise Exception("%s had no way to decode"%directions)
continue
#重命名,构造完整的路径和后缀
def doc_rename(book_list_line):
try:
name_list = book_list_line.split(' ')
list_name = name_list[0]
cool_list = list_name.split('.')
ext = cool_list[-1]
current_folder = os.getcwd()
real_name = name_list[1]
real_name = os.path.join(current_folder, real_name)
real_name_ext = real_name+'.'+ext
os.rename(os.path.join(current_folder, list_name), real_name_ext)
print('success')
except:
pass
return 0
#据说高手都会写的主函数
if __name__ == '__main__':
get_list()
要求文件放在普通文件夹下,文件后缀可以任意(后缀要和txt内的列表后缀一样),文件列表放在1.txt下面,txt保存为微软下的默认ANSI格式或者UTF无BOM格式就好,内部内容格式为以下格式:
ts001003.pdf 世界科技全景百卷书(3)近代科技
ts001004.pdf 世界科技全景百卷书(4)蒸汽机带来的革命
ts001005.pdf 世界科技全景百卷书(5)现代科技
1.txt文档要求每个文档一行,保存的时候必须为ANSI或者UTF无BOM格式,其他格式没事测试,
前面是列表文档名含后缀(就是网站上文件名,一串数字#或者字母什么的),空一格,然后是文档的真名(不带后缀)


猜你喜欢
- 情人节快乐!这个节日怎么会少了浪漫的玫瑰花!用Python的turtle库绘图是很简单的,画了一个玫瑰花,下面奉上源码:源码:'
- 回文数就是指整数倒过来和原整数相等。Example 1:Input: 121Output: trueExample 2:Input: -12
- 简介简介:零代码的22个小游戏集合 作者:Grant Jenks版本:2.4.0安装:D:\>pip install fre
- 本文实例讲述了Python实现的自定义多线程多进程类。分享给大家供大家参考,具体如下:最近经常使用到对大量文件进行操作的程序以前每次写的时候
- 导语:除夕除夕,就是除去烦脑,迎接新的希望!在这里小编先祝大家除夕快乐,岁岁常欢笑,事事皆如意!正文:创建画布setup和draw是p5.j
- Windows 7下IE9安全级别设置项如下表示。(留空代表同前一列的值,无变化)类别属性中中-高高.NET FrameworkXAML 浏
- 函数:split()Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串。通过指
- json_encode()如何转化一个对象? 使用 json_encode() 将数组 array
- 简介这篇博客涉及的脚本用来将bag文件批量转化为mp4文件dockerfileFROM osrf/ros:kinetic-desktop-f
- 开发环境解释器版本: python 3.8代码编辑器: pycharm 2021.2第三方模块requests: pip install r
- PDO::setAttributePDO::setAttribute — 设置属性(PHP 5 >= 5.1.0, PECL pdo
- namedtuple 就是命名的 tuple,比较像 C 语言中 struct。一般情况下的 tuple 是 (item1, item2,
- 前言1、防抖(debounce):触发高频事件后 n 秒内函数只会执行一次,如果 n 秒内高频事件再次被触发,则重新计算时间举例:就好像在百
- 即使在不太复杂的样式表中,也可能会有两个或者更多个规则找到同一元素。CSS通过一个叫做层叠(cascade)的过程处理这种冲突。
- 如果你是我的长期读者,那么你应该知道我在寻找一个完美备份程序,最后我写了一个基于bup的我自己的加密层。在写encbup的时候,我对仅仅恢复
- 主要是:前序遍历、中序遍历、后序遍历、层级遍历、非递归前序遍历、非递归中序遍历、非递归后序遍历#!/usr/bin/env python#-
- python将字符串转换成数组的方法。分享给大家供大家参考。具体实现方法如下:#------------------------------
- 配置node服务器在购买好服务器后,用Xshell链接到服务器。1、安装nvmcurl -o- https://raw.githubuser
- 1. Jupyter 默认目录调整首先要找到jupyter生成的配置文件 jupyter_notebook_config.py 。如果没有,
- Fabric 是基于 SSH 协议的 Python 工具,相比传统的 ssh/scp 方式,用 Python 的语法写管理命令更易读也更容易