batとpythonの一括リネームファイルの実現コード


最近あるウェブサイトからいくつかの文書をダウンロードしましたが、ファイルは数字列で命名された文書です。今はこれらのファイルをダウンロードしました。これらのファイルのリストもあります。一つ一つのファイルを名前を変えてはいけないです。だからネットでこのいくつかのシナリオを探しました。
一、batスクリプトを使う(windowsシステムはデフォルトで使えます)
メモ帳を開けて、これらのコードをメモ帳に書き込んで、××.batファイルとして保存します。多くの白はxt.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フォーマットとして保存すればいいです。内部の内容フォーマットは以下のフォーマットです。
ts 000000003.pdf世界科学技術パノラマ百巻書(3)近代科学技術
ts 001004.pdf世界科学技術全景百巻書(4)蒸気機関による革命
ts 005.pdf世界科学技術パノラマ百巻書(5)現代科学技術
必要なものがあれば、適当に修正してもいいです。
二、pythonスクリプトを使用する(windowsシステムはpython 3.5コンパイルソフトをインストールする必要があります。約30 M、linuxはpythonから3.5までアップグレードする必要があります。)
この脚本は何時間もかけて書いた台本です。
メモ帳を開けて、これらのコードをメモ帳に書き込んで、××.batファイルとして保存します。多くの白はxt.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
') else: line = line.strip('
') 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フォーマットがないといいです。内部の内容フォーマットは以下のフォーマットです。
ts 000000003.pdf世界科学技術パノラマ百巻書(3)近代科学技術
ts 001004.pdf世界科学技術全景百巻書(4)蒸気機関による革命
ts 005.pdf世界科学技術パノラマ百巻書(5)現代科学技術
1.txt文書は各文書の一行を要求します。保存する時はANSIまたはUTFのためにBOM形式がなく、その他のフォーマットは大丈夫です。
前のリストのドキュメント名には、拡張子が含まれています。
皆さんのために特別パッケージを使用してダウンロードします。
txtを読んでリストファイルの名前を変更します。zip