在Windows中的Python中调用shutil.rmtree时出现无效的目录名错误

时间:2014-09-29 12:59:29

标签: python windows

我的目标:在当前工作目录中,如果存在名为temp的文件夹,则将其删除并创建一个新文件夹,否则只需创建文件夹temp。将用户从当前工作目录中输入filename复制到新创建的temp文件夹。

问题:我收到WindowsError at line 8(shutil.rmtree(temp_path))陈述The directory name is invalid

user_file_name = raw_input('Enter the file name:')

cwd = os.getcwd()

temp_path = cwd + r'\temp'

if os.path.exists(temp_path):
   shutil.rmtree(temp_path)
   os.makedirs(temp_path) 
else:
   os.makedirs(temp_path)

temp_xml_path = temp_path + "\\" + user_file_name
xml_path = cwd + "\\" + user_file_name

shutil.copyfile(xml_path, temp_xml_path)

3 个答案:

答案 0 :(得分:4)

使用os.path.join()创建路径可以避免许多潜在问题。该函数的作用是自动在args之间插入OS的路径分隔符。由于Windows上的分隔符为\,因此使用它而不是手动字符串连接可以使您的生活更轻松。

答案 1 :(得分:0)

反斜杠转义问题。尝试做

xml_path.encode("string-escape")

和temp_xml_path相同,然后再将其传递给copyfile。

答案 2 :(得分:-1)

temp_path只有一个\,但最好使用os.path.join

temp_path = cwd + r'\\temp'