簡體   English   中英

更改文件夾中的文件名

[英]Changing filenames in folders

我有一個文件夾,其中包含很多文件,這些文件有很多副本,使它們不可讀。

例子:

cow.txt
cow.txt(1)
cow.txt(2)
cow.txt(3)
dog.txt
dog.txt(1)

我希望將所有文件結構化,使它們能夠打開。 例子

cow.txt
cow(1).txt
cow(2).txt
cow(3).txt
dog.txt
dog(1).txt

您可以提供的任何幫助將不勝感激。 我只是想確保名稱已更改,而不是要讀取每個單獨的文件。 此外,如果可能的話,我想將文件分成 20k 塊。 先感謝您。

我曾嘗試使用 os.rename 來簡單地重命名文件,但我對如何有效地進行操作感到困惑,因為數字位於 .txt 之后,然后我決定讀取所有文件並將它們轉換為 pandas 數據框並修復它方法。 但是,我對如何提取文件並使用該名稱制作它們感到困惑。

list_of_files = os.listdir()
df = pd.DataFrame(list_of_files, columns  = ['File_Name'])
df['.txt_removed'] = df.replace(to_replace = '.txt', value = '', regex = True)
df['txt_add'] = df['.txt_removed'] + '.txt'

要提取文件,我會做這樣的事情

for filewant_in df['txt_add']:
     if filewant in os.listdir():
         sutil.copy(os.path.join(filewant), 'new location')

我不認為這個選項會起作用,即使它給了我預期的結果。 因為我想更改整體文件名。

你可以使用python的標准庫, os模塊有os.rename function。

像這樣:

它是這樣工作的:

os.rename('cow.txt(1)', 'cow(1).txt')

創建一個 .py 文件並粘貼下面的代碼,然后運行它。 將 /mydir 路徑更改為包含文件的目錄的路徑。 代碼將在目錄中循環查找所有包含 have.txt 作為文件擴展名的一部分,並將它們重命名為 a.txt 文件。 我希望它有效。

import glob, os
os.chdir("/mydir")
for file in glob.glob("*.txt*"):
    file_name = os.path.basename(file)
    part_name = file_name.split(".", 1)
    new_name = part_name[0]+'.txt'
    os.rename(file,new_name) 

暫無
暫無

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

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