如何复制扩展名为.txt 的文件?
how to copy files with extension .txt?
我正在尝试创建一个程序来自动创建我在 python 中工作的目录文件 .txt。
我设法创建了一个代码来查找所有扩展名为 .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: 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: 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 yields all the files that match the pattern 上使用了 glob(在您的情况下,"**\*.txt"
)。幸运的是,这就像将 WindowsPath
(或其他系统中的 PosixPath
)转换为字符串一样简单:
for file in pathlib.Path(".").glob("*.txt"):
file = str(file)
OS.walk()
通过遍历目录树 top-down 或 bottom-up 在目录树中生成文件名。对于以目录 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)
我正在尝试创建一个程序来自动创建我在 python 中工作的目录文件 .txt。 我设法创建了一个代码来查找所有扩展名为 .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: 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: 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 yields all the files that match the pattern 上使用了 glob(在您的情况下,"**\*.txt"
)。幸运的是,这就像将 WindowsPath
(或其他系统中的 PosixPath
)转换为字符串一样简单:
for file in pathlib.Path(".").glob("*.txt"):
file = str(file)
OS.walk()
通过遍历目录树 top-down 或 bottom-up 在目录树中生成文件名。对于以目录 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)