亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據文件名將多個文件從一個文件夾中分離到單獨的文件夾中?

如何根據文件名將多個文件從一個文件夾中分離到單獨的文件夾中?

aluckdog 2023-02-12 19:05:06
當前文件組織如下所示:Species_name1.ascSpecies_name1.csvSpecies_name1_Averages.csv......Species_name2.ascSpecies_name2.csvSpecies_name2_Averages.csv我需要找出一個腳本,它可以創建具有名稱(Species_name1、Species_name2...等)的新目錄,并且可以將文件從基本目錄移動到適當的新目錄中。import osimport globimport shutilbase_directory = [CURRENT_WORKING_DIRECTORY]with open("folder_names.txt", "r") as new_folders:     for i in new_folders:          os.mkdirs(base_directory+i)以上是我在基本目錄中創建新目錄時可以想到的示例。我知道如果我要使用 python,我將不得不使用 os、shutil 和/或 glob 模塊中的工具。然而,確切的腳本正在逃避我,我的文件仍然雜亂無章。如果您有任何建議可以幫助我完成這個小任務,我將不勝感激。此目錄中還有許多文件類型和后綴,但 (species_name?) 部分始終保持一致。以下是預期的層次結構:Species_name1-- Species_name1.asc-- Species_name1.csv-- Species_name1_Averages.csvSpecies_name2-- Species_name2.asc-- Species_name2.csv-- Species_name2_Averages.csv先感謝您!
查看完整描述

2 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

像這樣使用簡單的 shell 工具狂歡:


find . -type f -name '*Species_name*' -exec bash -c '

    dir=$(grep -oP "Species_name\d+" <<< "$1")

    echo mkdir "$dir"

    echo mv "$1" "$dir"

' -- {} \; 

echo 當輸出看起來不錯時刪除命令。


查看完整回答
反對 回復 2023-02-12
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

假設您的所有asc文件都像示例中那樣命名:


from os import  mkdir

from shutil import move

from glob import glob


fs = []

for file in glob("*.asc"):

    f = file.split('.')[0]

    fs.append(f)

    mkdir(f)

    

for f in fs:

    for file in glob("*.*"):

        if file.startswith(f):

            move(file, f'.\\{f}\\{file}')

更新:


假設您的所有Species_name.asc文件都像您的示例中那樣標記:


from os import  mkdir

from shutil import move

from glob import glob


fs = [file.split('.')[0] for file in glob("Species_name*.asc")]

    

for f in fs:

    mkdir(f)

    for file in glob("*.*"):

        if file.startswith(f):

            move(file, f'.\\{f}\\{file}')


查看完整回答
反對 回復 2023-02-12
  • 2 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號