我的目标:在当前工作目录中,如果存在名为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)
答案 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'