最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)遍歷子文件夾并將文件復(fù)制到不同的目標(biāo)文件夾

 更新時(shí)間:2023年08月17日 09:44:57   作者:瘋狂學(xué)習(xí)GIS  
這篇文章主要介紹了如何基于Python語(yǔ)言實(shí)現(xiàn)遍歷多個(gè)子文件夾,將每一個(gè)子文件夾中大量的文件,按照每一個(gè)文件的文件名稱的特點(diǎn)復(fù)制到不同的目標(biāo)文件夾中,感興趣的可以了解下

本文介紹基于Python語(yǔ)言,遍歷一個(gè)大文件夾中大量的子文件夾,并將每一個(gè)子文件夾中大量的文件,按照每一個(gè)文件的文件名稱的特點(diǎn)與差異,自動(dòng)創(chuàng)建多個(gè)目標(biāo)文件夾,并將指定文件復(fù)制到不同的目標(biāo)文件夾中的方法。

首先,我們來(lái)明確一下本文的需求。現(xiàn)在有一個(gè)大文件夾,其中具有多個(gè)表示年份子文件夾,每一個(gè)子文件夾對(duì)應(yīng)一個(gè)年份;如下圖所示。

其次,在每一個(gè)表示年份子文件夾中,同樣具有著大量的子文件夾,此時(shí)每一個(gè)子文件夾表示一個(gè)天數(shù);以上圖中的 2018 文件夾為例,將其打開后,如下圖所示。

隨后,每一個(gè)表示天數(shù)子文件夾中,就是我們希望加以提取、復(fù)制的文件了(在本中,就是一些 .tif 格式的遙感影像文件;如果大家需要復(fù)制其他格式的文件,思路和本文也都是一致的);我們以 2018 文件夾中的 001 子文件夾為例,將其打開后如下圖所示。但是,這些文件自身還有一定特征——首先,如下圖左側(cè)綠色框內(nèi)的部分所示,這些遙感影像文件來(lái)自不同的分幅,而這一部分的文字就是表示了他的分幅;我們希望,將同一個(gè)分幅所有遙感影像文件在后期復(fù)制到同一個(gè)文件夾內(nèi)(比如所有名稱帶有 50TMK 字樣的遙感影像文件,都放在名稱為 50TMK 的目標(biāo)文件夾中);其次,那些以 _QC.tif 字段結(jié)尾的遙感影像我們都不需要,無(wú)需復(fù)制,只復(fù)制不帶 _QC 字段的遙感影像文件即可。

明確了需求,我們就可以開始代碼的撰寫。

# -*- coding: utf-8 -*-
"""
Created on Thu Aug 17 00:14:16 2023
@author: fkxxgis
"""
import os
import shutil
source_folder = "F:/ers"
target_folder = "F:/Beijing_Preprocessing"
for year_folder in os.listdir(source_folder):
    year_path = os.path.join(source_folder, year_folder)
    if not os.path.isdir(year_path):
        continue
    for day_folder in os.listdir(year_path):
        day_path = os.path.join(year_path, day_folder)
        if not os.path.isdir(day_path):
            continue
        for image_file in os.listdir(day_path):
            if image_file.endswith("NDVI.tif"):
                index = image_file[-25 : -20]
                source_image_path = os.path.join(day_path, image_file)
                target_image_path = os.path.join(target_folder, index, image_file)
                if not os.path.isdir(os.path.join(target_folder, index)):
                    os.makedirs(os.path.join(target_folder, index))
                shutil.copy(source_image_path, target_image_path)
                print(year_folder, " ", day_folder)

其中, source_folder target_folder 分別指定了源文件夾(就是存放有原始遙感影像文件的大文件夾)和目標(biāo)文件夾(也就是我們希望將遙感影像復(fù)制到的結(jié)果文件夾)的路徑。

隨后,我們通過(guò) for year_folder in os.listdir(source_folder): 遍歷源文件夾中,表示年份的子文件夾。其后的 year_path = os.path.join(source_folder, year_folder) 用來(lái)生成年份子文件夾的完整路徑。同時(shí)可以通過(guò)一個(gè) if 語(yǔ)句來(lái)加以判斷——如果當(dāng)前路徑不是文件夾,則跳過(guò)本次循環(huán)。隨后,通過(guò)類似的方式,遍歷當(dāng)前年份子文件夾中的天數(shù)子文件夾。

接下來(lái),就可以通過(guò) for image_file in os.listdir(day_path): 來(lái)遍歷當(dāng)前天數(shù)子文件夾中的文件。在這里,我們需要加以判斷——如果文件名以 NDVI.tif 結(jié)尾,表示這是我們想要的遙感影像文件。

其次, index = image_file[-25 : -20] 則是用來(lái)從文件名中提取索引,這個(gè)索引就是遙感影像的分幅,我們將其提取出來(lái),用來(lái)構(gòu)建不同分幅對(duì)應(yīng)的目標(biāo)文件夾。其后面的一個(gè)判斷 if not os.path.isdir(os.path.join(target_folder, index)): ,就是檢查每一個(gè)遙感影像的分幅,如果這一分幅對(duì)應(yīng)的目標(biāo)路徑不存在,創(chuàng)建對(duì)應(yīng)的目錄結(jié)構(gòu)。

最后,我們使用 shutil 庫(kù)的 copy 函數(shù),將遙感影像文件復(fù)制到對(duì)應(yīng)的目標(biāo)路徑內(nèi)。

運(yùn)行上述代碼,我們即可在目標(biāo)文件夾中,首先看到每一個(gè)分幅的對(duì)應(yīng)的子文件夾,如下圖所示(我這里就是只有 4 個(gè)分幅)。

而在每一個(gè)分幅子文件夾內(nèi),所有遙感影像都是這一分幅對(duì)應(yīng)的文件,如下圖所示。

至此,大功告成。

到此這篇關(guān)于Python實(shí)現(xiàn)遍歷子文件夾并將文件復(fù)制到不同的目標(biāo)文件夾的文章就介紹到這了,更多相關(guān)Python文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于OpenCV目標(biāo)跟蹤實(shí)現(xiàn)人員計(jì)數(shù)器

    基于OpenCV目標(biāo)跟蹤實(shí)現(xiàn)人員計(jì)數(shù)器

    這篇文章主要介紹了如何利用Python OpenCV這兩者來(lái)創(chuàng)建更準(zhǔn)確的人員計(jì)數(shù)器,文中的示例代碼講解詳細(xì),感興趣的小伙伴快來(lái)跟隨小編學(xué)習(xí)一下吧
    2022-03-03
  • Python如何利用opencv實(shí)現(xiàn)手勢(shì)識(shí)別

    Python如何利用opencv實(shí)現(xiàn)手勢(shì)識(shí)別

    這篇文章主要介紹了Python如何利用opencv實(shí)現(xiàn)手勢(shì)識(shí)別,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙可以參考一下
    2022-05-05
  • Python實(shí)現(xiàn)項(xiàng)目打包部署Linux服務(wù)器運(yùn)行方式

    Python實(shí)現(xiàn)項(xiàng)目打包部署Linux服務(wù)器運(yùn)行方式

    文章主要介紹了Python項(xiàng)目的打包和部署,包括使用buildout打包和docker容器化部署,打包可生成exe文件或安裝包,部署可直接部署或使用docker,文中詳細(xì)介紹了每個(gè)步驟的實(shí)現(xiàn)方法和相關(guān)命令
    2026-04-04
  • python代碼實(shí)現(xiàn)煙花實(shí)例

    python代碼實(shí)現(xiàn)煙花實(shí)例

    這篇文章主要給大家分享了python煙花詳細(xì)的代碼,文章主要以python煙花的代碼展開全文,所以解說(shuō)會(huì)比較少,代碼較多。喜歡的小伙伴可以參考一下,希望對(duì)你有所幫助
    2021-12-12
  • Python中跳出循環(huán)的兩種方法

    Python中跳出循環(huán)的兩種方法

    在 Python 中,跳出循環(huán)通常指的是使用 break 語(yǔ)句來(lái)結(jié)束一個(gè)循環(huán)結(jié)構(gòu),比如 for 循環(huán)或 while 循環(huán),當(dāng)程序執(zhí)行到 break 語(yǔ)句時(shí),循環(huán)會(huì)立即終止,程序會(huì)繼續(xù)執(zhí)行循環(huán)后面的代碼,本文給大家介紹了Python中跳出循環(huán)的兩種方法,需要的朋友可以參考下
    2024-09-09
  • 對(duì)numpy中軸與維度的理解

    對(duì)numpy中軸與維度的理解

    下面小編就為大家分享一篇對(duì)numpy中軸與維度的理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python網(wǎng)絡(luò)爬蟲精解之正則表達(dá)式的使用說(shuō)明

    python網(wǎng)絡(luò)爬蟲精解之正則表達(dá)式的使用說(shuō)明

    正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來(lái)表達(dá)對(duì)字符串的一種過(guò)濾邏輯
    2021-09-09
  • python-sys.stdout作為默認(rèn)函數(shù)參數(shù)的實(shí)現(xiàn)

    python-sys.stdout作為默認(rèn)函數(shù)參數(shù)的實(shí)現(xiàn)

    今天小編就為大家分享一篇 python-sys.stdout作為默認(rèn)函數(shù)參數(shù)的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Flask-Sqlalchemy的基本使用詳解

    Flask-Sqlalchemy的基本使用詳解

    本文主要介紹了Flask-Sqlalchemy的基本使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python學(xué)習(xí)筆記之open()函數(shù)打開文件路徑報(bào)錯(cuò)問(wèn)題

    Python學(xué)習(xí)筆記之open()函數(shù)打開文件路徑報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了Python學(xué)習(xí)筆記之open()函數(shù)打開文件路徑報(bào)錯(cuò)問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04

最新評(píng)論

乌拉特中旗| 永顺县| 区。| 沾益县| 兴义市| 安龙县| 泽州县| 乐清市| 长沙市| 博客| 天柱县| 新宁县| 大理市| 五华县| 武宁县| 来安县| 沙雅县| 定边县| 武宁县| 呼伦贝尔市| 平原县| 许昌市| 泊头市| 宜丰县| 怀安县| 枣阳市| 阜新市| 屏东县| 绵阳市| 邢台县| 临澧县| 岫岩| 婺源县| 富川| 贵溪市| 城固县| 历史| 黄平县| 宁城县| 蕉岭县| 仁化县|