Python 的新手使用 shutil 找不到现有的文件路径

New to Python using shutil cant find existing filepath

我是 python 的新手。我正在尝试创建一个简单的程序,该程序使用 shutil 将 C 驱动器中的文件夹复制到另一个文件夹。复制后,我想将 date/time 添加到新位置文件夹名称的末尾。这用于文件备份和清理。这是我到目前为止所得到的,但找不到文件路径。最终这不得不将复制的文件从本地PC保存到网络驱动器。

import shutil
import datetime
import os

SOURCE = "C:/Program Files(x86) /FOLDER1/LOGS"
AppendDate=datetime.datetime.now()
BACKUP = "C:/Users/ME/Desktop/FOLDERNEW/LOGS %s" % AppendDate

shutil.copytree(SOURCE,BACKUP)
print os.listdir(BACKUP)

欢迎来到 Python 的世界!请尝试以下操作。

import shutil
import datetime
import os

SOURCE = "C:\Program Files (x86)\FOLDER1\LOGS"
AppendDate=datetime.datetime.now()
BACKUP = "C:\Users\ME\Desktop\FOLDERNEW\LOGS %s" % AppendDate

shutil.copytree(SOURCE,BACKUP)
print os.listdir(BACKUP)

Windows 使用不同于 Unix 的目录分隔符,Linux 和 Mac。这个字符 \ 还有另一个功能作为转义序列的前缀,因此要在 Python 字符串中生成单个 \ 字符,您需要有两个 \(即,它是 \ 字符本身的转义序列)或使用 "raw" 字符串。

此外,正如其他评论员指出的那样,您的路径中的 space 似乎放错了地方。

抱歉post,因为我还不能'comment'。

但是,看起来错误可能是您的程序文件 (x86) 行中遗漏了一个 space。

SOURCE = "C:/Program Files (x86)/"

至于日期,必须以 windows 的格式附加,文件夹命名除外。

Best practices for file naming

为此使用 replace 替换 Appenddate 字符。

import re

cleandate = re.sub('[-!@#$:.]', '_', str(AppendDate))

这对我有用。

import shutil
import datetime
import os
import re



SOURCE = "C:/Program Files (x86)/HP"
AppendDate=datetime.datetime.now()
cleandate = re.sub('[-!@#$:.]', '_', str(AppendDate))
BACKUP = "C:/Users/Robert/Desktop/FOLDERNEW/LOGS %s" % cleandate

shutil.copytree(SOURCE,BACKUP)
print os.listdir(BACKUP)