簡體   English   中英

Python-將前導0添加到文件編號

[英]Python - Add leading 0 to file numbers

我是python的新手,通常我在一個文件夾中有1200個文本文件,格式如下:
詹姆斯-1-如何.... txt
莎拉-2-如何.... txt
Steph-3-如何.... txt
...
瑪麗亞-200-如何.... txt
...
拉什福德-1200-如何... .txt

我想重命名1000以下的文件以添加前導0,以便它們都具有相同的數字位數,例如0001、0050、0300

到目前為止,這是我的代碼,但是卡住了:

#!python3

import os
from tkinter import filedialog

cleaned_files = []

root_folder = filedialog.askdirectory()
os.chdir(root_folder)
folder_files = os.listdir(root_folder)

# Filter out files starting with '.' and '_'
cleaned_files = []
for item in folder_files:
    if item[0] == '.' or item[0] == '_':
        pass
    else:
        cleaned_files.append(item)


# Find file names of the root folder and save them


def getFiles(files):
    for file in files:
        file_start, file_number, file_end = file.split('-')
        file_number.strip()

        # Was trying to append just one 0 to numbers <10
        if int(file_number) < 10:
            print(file_number)
        else:
            pass
getFiles(cleaned_files)

像這樣修改您的append方法(由@gtlambert和@zondo提及):

    # Was trying to append just one 0 to numbers <10
    file_number.zfill(4)

Python字符串zfill

正如您在評論中所說, str.zfill是一種可能且簡單的解決方案。

您只需要更改getfiles函數:

def getFiles(files):
    for file in files:
        file_start, file_number, file_end = file.split('-')
        num = file_number.split().zfill(4)  # num is 4 characters long with leading 0

        new_file = "{}- {} -{}".format(file_start, num, file_end)
        # rename or store the new file name for later rename

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM