python脚本在if语句中需要一个缩进块

python脚本在if语句中需要一个缩进块,python,Python,我正试图编写一个从一个文件夹到另一个文件夹的基本备份脚本,我让它工作了——但目录结构没有被复制,只是文件。我也在尝试复制子文件夹,因此,例如,c:\temp\docs\file.txt转到d:\temp\docs\file.txt,而不仅仅是d:\temp\file.txt 我的问题存在于if/else语句的缩进中,但在我看来一切都很好。我做错了什么 import datetime, time, string, os, shutil COPY_FROM_LOCATION = 'C:\\xamp

我正试图编写一个从一个文件夹到另一个文件夹的基本备份脚本,我让它工作了——但目录结构没有被复制,只是文件。我也在尝试复制子文件夹,因此,例如,
c:\temp\docs\file.txt
转到
d:\temp\docs\file.txt
,而不仅仅是
d:\temp\file.txt

我的问题存在于if/else语句的缩进中,但在我看来一切都很好。我做错了什么

import datetime, time, string, os, shutil

COPY_FROM_LOCATION = 'C:\\xampp\\htdocs\\projects'
folder_date = time.strftime("%Y-%m-%d")
BACKUP_TO_LOCATION = 'D:\\BACKUP\\' + folder_date

#Create a new directory in D:\BACKUP based on today's date so the folder you're trying to copy to actually exists:
if not os.path.exists(BACKUP_TO_LOCATION):
    os.makedirs(BACKUP_TO_LOCATION)

#copy function
def backup(source_folder, target_folder):
    for subdir, dirs, files in os.walk(source_folder):
        if subdir == source_folder :
            new_target_folder = target_folder
        else:
            folder_name = subdir.split("C:\\xampp\\htdocs\\projects\\",1)[-1]
            new_target_folder = target_folder + "\\" + folder_name
        for file in files:
            print "backing up: " + folder_name
            shutil.copy2(os.path.join(subdir, file), new_target_folder) 

backup(COPY_FROM_LOCATION,BACKUP_TO_LOCATION)
下面是我得到的错误:

  File "backup.py", line 15
    new_target_folder = target_folder
                    ^
IndentationError: expected an indented block

分号前的空格有什么奇怪之处?我以前从未见过这样做,这似乎就是这个脚本被阻塞的地方

改变

if subdir == source_folder :


分号前的空格有什么奇怪之处?我以前从未见过这样做,这似乎就是这个脚本被阻塞的地方

改变

if subdir == source_folder :


您正在混合制表符和空格


使用其中一个,而不是两个。最好是空格。

您混合了制表符和空格


使用其中一个,而不是两个。最好是空格。

此错误通常意味着缩进中存在错误。检查您是否不混合制表符和空格


您可以使用来检测它们,或者如果它只是简单地粘贴代码,它将显示您可以增强的功能。

此错误通常意味着缩进中存在错误。检查您是否不混合制表符和空格


您可以使用来检测它们,或者如果它只是简单地粘贴代码,它将显示您可以增强的功能。

不,在冒号之前留一个空格也可以。这不是问题所在。您是否尝试过修复此问题,但不知何故,您的换行符和/或空格被弄乱,导致出现此缩进错误。你从什么地方复制并粘贴了这个脚本吗?不,在冒号前留一个空格就可以了。这不是问题所在。您是否尝试过修复此问题,但不知何故,您的换行符和/或空格被弄乱,导致出现此缩进错误。您是否从某个地方复制并粘贴了此脚本?是否混合了制表符和空格?您可能需要使用一个过梁。使您的代码更易于阅读并符合PEP。我看不出你的代码有什么问题,这让我觉得把制表符和空格作为缩进是有问题的。你是在混合制表符和空格吗?你可能需要使用一个过梁。使您的代码更易于阅读并符合PEP。我看不出你的代码有什么问题,这让我认为这是一个将制表符和空格作为缩进插入的问题。是的。看在上帝的份上,我正要把头发拔出来!是的。看在上帝的份上,我正要把头发拔出来!