簡體   English   中英

使用Python以與文件名匹配的文件夾名稱遞歸創建文件夾

[英]Use Python to Create Folders Recursively with Folder Names Matching Filenames

是否有Python方法來遞歸創建目錄? 我有這條路:

/ home / data /中包含文件“ table1.csv”,“ table2.csv”,...,“ table1000.csv”

我想創建:/ home / data / table1並在其中移動“ table1.csv”; / home / data / table2並在其中移動“ table2.csv”; / home / data / table1000並在其中移動“ table1000.csv”;

文件夾名稱必須與csv文件名稱匹配。

我該如何遞歸呢? 我知道應該使用os.makedirs()不確定它是如何工作的。

非常感謝。

注意:“ table1”和“ table2”等只是虛擬示例文件名。 實際的文件名有點復雜。

使用mkdiros庫創建每個目錄。

https://docs.python.org/2/library/os.html

對於每個目錄,請使用shutil.move移動當前文件。

如何在Python中移動文件

每次迭代應如下所示:

for i in range(1, 1001):
    os.mkdir('/home/data/table' + str(i))
    shutil.move('/home/data/table' + str(i) + '.csv', '/home/data/table' + str(i) + '/table' + str(i) + '.csv')

我將以以下方式在Python中工作:

1.獲取列表中文件夾中的所有文件

2.瀏覽列表的文件名並:

  1. 創建具有確切名稱的文件夾(前提是您沒有重復的名稱)
  2. 移動文件夾中的文件
  3. 下一個檔案

在網上進行簡單的搜索即可獲得有關如何完成上述每個步驟的示例。

編輯:下面是一個簡單的csv文件示例。

import glob, os
import shutil
dir="D:\Dropbox\MYDOCS\DEV\python\snippets"
os.chdir(dir)
for file in glob.glob("*.csv"):
    dst=dir+"\\"+file.replace(" ","_").replace(".csv","")
    os.mkdir(dst)
    print(dst)
    shutil.move(file,dst)

使用的Windows路徑,因為我使用Windows,所以您需要將其更改為Linux路徑。

暫無
暫無

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

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