首頁  >  文章  >  後端開發  >  python檔名的批次修改

python檔名的批次修改

巴扎黑
巴扎黑原創
2017-09-11 10:42:371540瀏覽

本文給大家分享的是一段僅僅10行程式碼就實現了批量修改文件名的python腳本,推薦給大家,有需要的小伙伴可以參考下

我曾以為,寫腳本是很難的,直到我遇到了Python

前言隨著國內版權意識的跟進,很多影視音樂資源開始收費,而且度盤又經常隨意封殺各種資源,所以,為了保護資源,老司機們越來越傾向於把資源下載到本地,但隨著本地資源量的增多,資源管理就成了一件比較頭疼的事情;對於資源的管理,方法有很多,我比較喜歡為資源起一個好記的名字,但改檔名是一件無聊又耗時的事情,所以,一個批量重命名的腳本就變得非常重要.

1.批量添加前綴功能


批次重命名

#批次重新命名邏輯,分三步驟:

#( 1)確定需要命名的檔案們
(2)確定新的檔案名稱
(3)改名

邏輯理清,編碼就變得很簡單了


#10行程式碼

上圖原始碼:


#
# 导入python内置的os模块和sys模块
import os
import sys

# 程序入口
if __name__ == "__main__":
  # 获取需要添加的前缀
  pre = input("请输入需要添加的前缀:")
  # 为了美观,为前缀添加一个中括号
  mark = "[%s]"%pre
  # 获取本目录下所有的文件名
  old_names = os.listdir()
  # 遍历目录下的文件名
  for old_name in old_names:
    # 跳过本脚本文件
    if old_name != sys.argv[0]:
      # 用新的文件名替换旧的文件名
      os.rename(old_name, mark+old_name)

2.(擴充功能)新增移除前綴功能:

上面的10行程式,只能批次增加前綴,不能批次移除,不太完善,這是增加了移除前綴功能的源碼

##添加/移除

上圖原始碼:


import os
import re
import sys

def add_mark():
  pre = input("请输入需要添加的前缀:")
  mark = "[%s]"%pre
  old_names= os.listdir()
  for old_name in old_names:
    if old_name != sys.argv[0]:
      os.rename(old_name, mark+old_name)

def remove_mark():
  old_names= os.listdir()
  for old_name in old_names:
    try:
      result = re.match(r"(^\[.*\])(.*)", old_name).group(2)
      rm = old_name

      if result:
        os.rename(old_name, result)
      print("已为%s移除前缀"%rm)
    except Exception as e:
      pass

def main():
  while True:
    option = int(input("请选择功能数值:\n1.添加前缀\n2.删除前缀\n3.退出程序\n"))
    if option == 1:
      add_mark()
    elif option == 2:
      remove_mark()
    else:
      exit()

if __name__ == "__main__":
  main(

以上是python檔名的批次修改的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn