『無為則無心』Python基礎 — 44、對檔案和資料夾的操作

繁華似錦Fighting發表於2022-02-21

1、os模組介紹

os模組提供了多數作業系統的功能介面函式。當os模組被匯入後,它會自適應於不同的作業系統平臺,根據不同的平臺進行相應的操作。

在Python程式設計時,os模組可以處理檔案和目錄這些我們日常手動需要做的操作,例如:顯示當前目錄下所有檔案、刪除某個檔案、獲取檔案大小等等。

在Python中使用os模組裡面的相關功能,具體步驟如下:

  1. 匯入os模組。
    import os
    
  2. 使用os模組相關功能。
    os.函式名()
    

2、檢視os模組相關文件

Python本地文件中,[Python Module Index] — > [os] ,進入os模組文件介面。

image

點選os就可以檢視os模組的官方文件了。

3、os模組常用方法

(1)檔案重新命名

os.rename(目標檔名, 新檔名)

檔案和檔名都可以用該方法重新命名。

提示:此方式可以對一個檔案進行重新命名,也可以用來移動一個檔案。

# 相當於移動了BB檔案到桌面
os.rename('bb.txt','c:/users/lilichao/desktop/bb.txt')

(2)刪除檔案

os.remove(目標檔名)

注:如果沒有找到指定刪除的檔案,將會報錯。

(3)建立資料夾

在當前目錄下建立一個目錄

os.mkdir(資料夾名字)

注:有同名的資料夾則會報錯。

(4)刪除資料夾

os.rmdir(資料夾名字)

(5)獲取當前目錄

os.getcwd()

(6)改變預設目錄

改變目錄路徑,也就是切換目錄。

os.chdir(目錄)

(7)獲取目錄列表

獲取某個資料夾下所有檔案,返回一個列表。

os.listdir(目錄)

需要一個路徑作為引數,會獲取到該路徑下的目錄結構,預設路徑為 . ,表示當前目錄。..就是上一級目錄。

該方法會返回一個列表,目錄中的每一個檔案(夾)的名字都是列表中的一個元素。

4、應用案例

應用1

需求:新增指定字串,對原檔案進行重新命名。如test.txt檔案,重新命名為Python_test.txt

"""
需求1:把code資料夾所有檔案重新命名Python_xxxx(原檔名)
1. 找到所有檔案:
2. 構造名字
3. 重新命名
"""
import os

# 1. 找到所有檔案:
# 獲取code資料夾的目錄列表,使用listdir()方法
file_list = os.listdir()

# 2. 遍歷檔案中的所有名字,進行檔案改名
for i in file_list:
    # new_name = 'Python_' + 原檔名i
    new_name = 'Python_' + i

# 3. 重新命名
os.rename(i, new_name)

應用2

需求:批量修改檔名,既可新增指定字串,又能刪除指定字串。

步驟:

  1. 設定新增或刪除字串的的標識。
  2. 獲取指定目錄的所有檔案。
  3. 將原有檔名新增/刪除指定字串,構造新名字。
  4. os.rename()重新命名。

程式碼:

import os

# 設定重新命名標識:
# 如果flag取值為1則新增指定字元,
# flag取值為2則刪除指定字元
flag = 1

# 獲取指定目錄,就取當前目錄
dir_name = './'

# 獲取指定目錄的檔案列表
file_list = os.listdir(dir_name)
# print(file_list)


# 遍歷檔案列表內的檔案
for name in file_list:

    # 新增指定字元
    if flag == 1:
        new_name = 'Python-' + name
    # 刪除指定字元
    elif flag == 2:
        num = len('Python-')
        new_name = name[num:]

    # 列印新檔名,測試程式正確性
    print(new_name)

    # 重新命名
    os.rename(dir_name+name, dir_name+new_name)

相關文章