batとpythonの一括名前変更ファイルの実装コード

3595 ワード

最近あるウェブサイトからいくつかのドキュメントをダウンロードしましたが、ファイルは数字列で命名されたドキュメント(多くの図書館ではそうでしょう)で、今私もこれらのファイルをダウンロードしました.これらのファイルのリストもありますが、一つ一つファイルの名前を変更することはできません.だからネット上でこれらのスクリプトを探しました.
一、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)近代科学技術ts 001004.pdf世界科学技術全景百巻書(4)蒸気機関がもたらした革命ts 001005.pdf世界科学技術全景百巻書(5)現代科学技術
必要なものがあれば適宜修正することができる.
二、pythonスクリプトを使用する(windowsシステムはpython 3.50コンパイルソフトウェアをインストールする必要があり、約30 M、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
') 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フォーマットがなければよく、内部コンテンツフォーマットは以下のフォーマットである.
ts001003.pdf世界科学技術全景百巻書(3)近代科学技術
ts001004.pdf世界科学技術全景百巻書(4)蒸気機関がもたらした革命
ts001005.pdf世界科学技術全景百巻書(5)現代科学技術
1.txtドキュメントは各ドキュメントの1行を要求して、保存する時必ずANSIあるいはUTFのためにBOMフォーマットがなくて、その他のフォーマットはテストがなくて、
前はリストのドキュメント名に接尾辞(Webサイト上のファイル名、数字の列、アルファベットなど)が含まれていて、空の1つ、それからドキュメントの本名(接尾辞なし)です.
特提供パッケージダウンロード:•txt名前変更リストファイルを読み込む.zip