2025年7月15日 星期二

使用python撈取檔案清單

 以下是AI提供python代碼撈取檔案清單,在撈取整個硬碟時如D槽,輸入方式不一樣,需要以D:\\呈現,相關解答也是由AI提供,在除錯方面相當即時。

AI講解錯誤的原因:

在字串的結尾 \" 被 Python 當作是 逃逸字元(escaped quote),導致 字串結尾的引號無法正確解析,造成語法錯誤(SyntaxError: unterminated string literal)。

撈取檔案清單的代碼:(撈取36萬筆清單大概5分鐘以內)

import os

import pandas as pd

from datetime import datetime


# 掃描的來源資料夾(可修改)

scan_dir = r"D:\\"


# 存檔的目的資料夾(可修改)

save_dir = r"C:\資料"


# 取得來源資料夾的最後一層名稱(作為檔名的一部分)

last_folder_name = os.path.basename(os.path.normpath(scan_dir))


# 儲存檔案資訊

file_data = []


# 遍歷所有子資料夾與檔案

for foldername, subfolders, filenames in os.walk(scan_dir):

    for filename in filenames:

        filepath = os.path.join(foldername, filename)

        try:

            stat = os.stat(filepath)

            file_info = {

                "檔名": filename,

                "路徑": filepath,

                "大小": stat.st_size,

                "修改時間": datetime.fromtimestamp(stat.st_mtime),

                "建立時間": datetime.fromtimestamp(stat.st_ctime),

                "授權時間": datetime.fromtimestamp(stat.st_atime),

                "資料夾": foldername,

                "檔案格式": os.path.splitext(filename)[1].lower()

            }

            file_data.append(file_info)

        except Exception as e:

            print(f"無法讀取檔案:{filepath},錯誤:{e}")


# 轉為 DataFrame

df = pd.DataFrame(file_data)


# 組合 Excel 輸出檔案完整路徑

output_file = os.path.join(save_dir, f"檔案清單_{last_folder_name}.xlsx")


# 匯出 Excel

df.to_excel(output_file, index=False)


print(f"✅ 匯出完成:{output_file}")

沒有留言:

張貼留言