Heim  >  Artikel  >  Backend-Entwicklung  >  Implementierung von Batch-Umbenennungsdateien in Bat und Python

Implementierung von Batch-Umbenennungsdateien in Bat und Python

高洛峰
高洛峰Original
2017-03-02 16:18:381567Durchsuche

Ich habe kürzlich einen Stapel Dokumente von einer Website heruntergeladen, aber die Dateien sind mit numerischen Zeichenfolgen benannt (viele Bibliotheken sind so). Jetzt habe ich diese Dateien heruntergeladen und es gibt auch eine Liste dieser Dateien, aber das ist nicht möglich Lassen Sie uns die Datei einzeln auflisten, also habe ich diese Skripte aus dem Internet gefunden.

1. Verwenden Sie das Bat-Skript (standardmäßig im Windows-System verfügbar)

Öffnen Sie den Editor, schreiben Sie diese Codes in den Editor und speichern Sie ihn als xx.bat Datei (Achten Sie auf den Suffixnamen. Viele Anfänger speichern sie als xx.bat.txt, weil der TXT versteckt ist und denken, dass er nicht funktioniert)

@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”
  )
)

Erfordert die Dateiplatzierung Im Ordner d:/pdf lautet das Dateisuffix .pdf und die Dateiliste wird unter 1.txt abgelegt. Speichern Sie einfach txt als Standard-ANSI-Format unter Microsoft lautet wie folgt:

ts001003 .pdf Ein Panoramablick auf die Weltwissenschaft und -technologie in hundert Bänden (3) Moderne Technologie
ts001004.pdf Ein Panoramablick auf die Weltwissenschaft und -technologie in einhundert Bänden (4 ) Die Revolution durch Dampfmaschinen
ts001005.pdf Ein Panoramablick auf die Weltwissenschaft und -technologie in hundert Bänden (5) Moderne Technologie

Kann bei Bedarf entsprechend geändert werden.


2. Verwenden Sie ein Python-Skript (Windows-System muss Python 3.50-Kompilierungssoftware installieren, etwa 30 Millionen, Linux muss Python schätzungsweise auf 3.50 aktualisieren)

Dieses Skript habe ich mehrere Stunden damit verbracht, ein Skript zu schreiben (obwohl ich schon lange Programmieren gelernt habe, fällt es mir immer noch schwer, ein gutes Skript flüssig zu schreiben)
Öffnen Sie Notepad, schreiben Sie diese Codes in Notepad und speichern Sie es unter xx. bat-Datei (achten Sie auf den Suffixnamen, viele Anfänger speichern ihn als xx.bat.txt, weil der Text versteckt ist und sie denken, dass er nicht funktioniert)

#!/bin/env python
# -*- coding: utf-8 -*-
"""从某网站下载了一批文档,但是文件是用数字串命名的文档(很多图书馆都这样吧),
也有文档列表,所以写了一个脚本来重命名批文件

"""
__author__ = 'rublog'
import os

#1.txt文档要求每个文档一行,保存的时候必须为ANSI格式,前面是列表文档名含后缀(就是网站上文件名,一串数字
#或者字母什么的),空一格,然后是文档的真名(不带后缀)
#get_list这个从1.txt文本文件中一行一行的读取文件,去掉换行符,然后调用doc_rename
#函数
def get_list():
  #尝试不同的编码来自知乎 十五
  #http://www.php.cn/
  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()

Erforderliche Datei. Platzieren Sie sie in einem normalen Ordner. Das Suffix muss mit dem Listensuffix in der TXT-Datei übereinstimmen im Standard-ANSI-Format unter Microsoft oder UTF ohne BOM-Format gespeichert. Das Inhaltsformat ist wie folgt:


ts001003.pdf Das hundertbändige Panorama der Weltwissenschaft und -technologie (3) Moderne Wissenschaft und Technologie

ts001004.pdf Das hundertbändige Panorama der Weltwissenschaft und -technologie (4) Die Revolution durch die Dampfmaschine

ts001005.pdf Das hundertbändige Panorama von Weltwissenschaft und Technologie (5) Moderne Technologie


1.txt-Dokument erfordert beim Speichern eine Zeile. Es muss im ANSI- oder UTF-Format ohne BOM-Format vorliegen. Andere Formate können problemlos getestet werden Vor >

steht eine Liste von Dateinamen inklusive Suffixen (also die Dateinamen auf der Website, eine Folge von Zahlen # oder Buchstaben oder so etwas), ein Leerzeichen und dann der eigentliche Name des Dokuments (ohne Suffix)


Weitere Artikel zur Implementierung von Batch-Umbenennungsdateien in Bat und Python finden Sie auf der chinesischen PHP-Website!



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Python-BenutzeranmeldesystemNächster Artikel:Python-Benutzeranmeldesystem