2016-03-01 27 views
0

我是新來的Python和編程一般 我有1200個的文本文件的文件夾中,按以下格式:
詹姆斯 - 1 - 如何... .TXT
薩拉 - 2 - 如何... .TXT
斯蒂芬 - 3 - 如何... .TXT
...
瑪麗亞 - 200 - 如何... .TXT
...
Rashford - 1200 - 如何... .txt
的Python - 添加0領先到文件號碼

我希望將這些文件改名低於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) 
+0

你想用'str.zfill()' - 這將前導零添加到您的字符串在需要 – gtlambert

+0

@gtlambert可以請你告訴我一個添加零後如何重命名的示例 – alfiepoleon

+2

您確實需要將您的問題縮小到某個特定的位置 - 然後我可以詳細幫助您! – gtlambert

回答

0

正如你在評論中說,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 
1

修改你這樣的附加法(@gtlambert和@zondo提到):

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

Python string zfill