我试图写一个python脚本,将自动复制文件在我的本地驱动器和我的网络驱动器。我想在目标文件夹的名称中添加时间和日期。这是我的代码:
import shutil
import os
from datetime import datetime
date = datetime.now().strftime("%m_%d_%Y-%I:%M:%S")
src = 'C:/test_folder'
dst = 'Z:/Backup Files/backup_{}'.format(date)
当我这样做时,我收到以下输出:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
Input In [2], in <cell line: 1>()
----> 1 shutil.copytree(src=src,dst=dst)
File C:pyverpy3.10.5libshutil.py:558, in copytree(src, dst, symlinks, ignore, copy_function, ignore_dangling_symlinks, dirs_exist_ok)
556 with os.scandir(src) as itr:
557 entries = list(itr)
--> 558 return _copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
559 ignore=ignore, copy_function=copy_function,
560 ignore_dangling_symlinks=ignore_dangling_symlinks,
561 dirs_exist_ok=dirs_exist_ok)
File C:pyverpy3.10.5libshutil.py:457, in _copytree(entries, src, dst, symlinks, ignore, copy_function, ignore_dangling_symlinks, dirs_exist_ok)
454 else:
455 ignored_names = set()
--> 457 os.makedirs(dst, exist_ok=dirs_exist_ok)
458 errors = []
459 use_srcentry = copy_function is copy2 or copy_function is copy
File C:pyverpy3.10.5libos.py:225, in makedirs(name, mode, exist_ok)
223 return
224 try:
--> 225 mkdir(name, mode)
226 except OSError:
227 # Cannot rely on checking for EEXIST, since the operating system
228 # could give priority to other errors like EACCES or EROFS
229 if not exist_ok or not path.isdir(name):
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'Z:/Backup Files/backup_07_13_2022-12:27:22'
有人知道我在这里可能做错了什么吗?
@FObersteiner是正确的。它不工作的原因是由于windows 10不允许冒号(:
)用作文件名的字符。我应该亲眼看到的。谢谢你的帮助!!
fobersteiner说的对。根据windows: "文件名不能包含以下任何字符:/:* ?";& lt;比;|">
你也可以像这样在python中添加日期和时间到文件名:
old_file_name = "image1"
from datetime import datetime
date = datetime.now().strftime("%Y_%m_%d-%I_%M_%S_%p")
updated_filename = f'{old_file_name}_{date}'
print(updated_filename)
输出:
image1_2022_07_18-09_47_15_PM
所以对你来说它变成了这样:
from datetime import datetime
date = datetime.now().strftime("%Y_%m_%d-%I_%M_%S_%p")
src = 'C:/test_folder'
dst = f'Z:/Backup Files/backup_{date}'
print(dst)
输出:
Z:/Backup Files/backup_2022_07_18-10_08_11_PM
更多细节Y %, %, % d %, %, % S, p %访问strftime-and-strptime-format-codes