簡體   English   中英

如何復制擴展名為.txt的文件?

[英]how to copy files with extension .txt?

我正在嘗試創建一個程序來自動創建目錄的 files.txt 到我在 python 中的工作。我設法創建了一個代碼來查找所有帶有 extension.txt 的文件。 但是我無法將所有這些文件復制到另一個文件夾,因為它顯示了以下錯誤。 我把我的代碼留給你,這樣你就可以幫助我解決它向我顯示的錯誤。

import pathlib
from datetime import date
from shutil import  copyfile

date_backup = date.today()
str_date_backup = str(date_backup).replace('-','.')

path_input = r'D:\2 PERSONAL'
ruta = pathlib.Path(path_input)
for archivo in ruta.glob("**\\*.txt"):
    path_out = r'D:\Backup' + '\\' + str_date_backup + " - " + archivo
    copyfile(path_input, path_out)

錯誤是:

Traceback (most recent call last):
  File "D:\5 PROYECTOS PYTHON\Automatizar_Backup\Automatizar_Backup.py", line 24, in <module>
    path_out = r'D:\Backup' + '\\' + str_date_backup + " - " + archivo
TypeError: can only concatenate str (not "WindowsPath") to str

發生這種情況是因為在pathlib.Path object 上使用 glob 會產生所有與模式匹配的文件(在您的情況下為"**\*.txt" )。 幸運的是,這就像將WindowsPath (或其他系統中的PosixPath )轉換為字符串一樣簡單:

for file in pathlib.Path(".").glob("*.txt"):
    file = str(file)

OS.walk()通過自上而下或自下而上遍歷樹來生成目錄樹中的文件名。 對於以目錄 top 為根的樹中的每個目錄(包括 top 本身),它產生一個 3 元組(dirpath、dirnames、filenames)。

你可以簡單地使用這個:

import os
from datetime import date
from shutil import copyfile
 

date_backup = date.today()
str_date_backup = str(date_backup).replace('-','.')

path_input = 'D:\\2 PERSONAL'
for root, dirs, files in os.walk(path_input):#dir_path
    for file in files: 
        # change the extension from '.txt' to 
        # the one of your choice.
        if file.endswith('.txt'):
            path_current = root+'/'+str(file)
            path_out = r'D:\Backup' + '\\' + str_date_backup + " - " + str(file)
            copyfile(path_current, path_out)

暫無
暫無

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

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