亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

bat和python批量重命名文件的實現代碼

系統 2072 0

最近從某網站下載了一批文檔,但是文件是用數字串命名的文檔(很多圖書館都這樣吧),現在我也下載完了這些文件,也有這些文件的列表,就是不能一個一個的把文件給重命名吧所以從網上找了這幾個腳本。

一、使用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格式,其他格式沒事測試,

前面是列表文檔名含后綴(就是網站上文件名,一串數字#或者字母什么的),空一格,然后是文檔的真名(不帶后綴)

為方便大家使用特提供打包下載:
?讀取txt重命名列表文件.zip


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99国产成人高清在线视频 | 国产欧美日韩精品一区二 | 亚洲精品一区二区三区在线播放 | 国产精品国产色综合色 | 国产日韩精品视频一区二区三区 | 亚洲人成一区二区不卡 | 日韩欧美亚洲国产精品字幕久久久 | 国产一区二区在线 |播放 | 2018一级毛片免费观看 | 亚洲黄色激情视频 | 九九热精品在线观看 | 亚洲人成网站色7799在线观看 | 国产精品第一 | 国产日比视频 | www国产精品| 欧美精品国产第一区二区 | 国产成年人在线观看 | 欧美在线香蕉在线现视频 | 一级毛片一级毛片一级毛片aa | 久草在线视频在线观看 | 亚洲欧美视频二区 | 中文字幕精品视频在线 | 欧美成人毛片免费视频 | 久久综合激情 | 伊人免费视频二 | 成人一级片在线观看 | 久久久久久97 | 国产亚洲图片 | 亚洲另类图区 | 久久成人永久免费播放 | 国产精品午夜激爽毛片 | 精品国产呦系列在线看 | 亚洲高清日韩精品第一区 | 亚欧人成精品免费观看 | 四虎免费视频 | 中文国产成人精品久久一 | 伊人网综合在线视频 | 国产午夜亚洲精品不卡福利 | 午夜网站在线观看免费网址免费 | 国产主播福利在线 | 伊人婷婷色香五月综合缴缴情 |