我正在尝试创建一个创建目录的脚本(名称输入) 并在刚创建的输入文件夹中创建第二个目录。
import os
import sys
user_input = raw_input("Enter name: ")
user_input1 = raw_input('Enter case: ')
path = user_input
if not os.path.exists(path):
os.makedirs(path)
path = user_input1
if not os.path.exists(user_input/user_input1):
os.makedirs(path)
我得到了
if not os.path.exists(user_input/user_input1):
TypeError: unsupported operand type(s) for /: 'str' and 'str'
我在这里做错了什么?
我试过这样做:
if not os.path.exists('/user_input1/user_input'):
但是这导致它创建了两个独立的目录而不是子目录
答案 0 :(得分:1)
要创建子目录,您需要在两个输入之间连接分隔符,可以这样做:
if not os.path.exists(os.path.join(user_input, user_input1)):
os.makedirs(os.path.join(user_input, user_input1))
您需要记住,在检查作为子目录的第二个输入字符串时,您传递os.path.join(user_input, user_input1)
,因为只传递user_input1
不会创建子目录。
答案 1 :(得分:0)
os.path.exists()
期待一个字符串。请改用:
if not os.path.exists(os.path.join(user_input, user_input1):
os.makedirs(path)
为了使您的代码更易于阅读,您也不应该重复使用path
变量。它会使读取代码的其他人感到困惑。这更清楚:
import os
import sys
path1 = raw_input("Enter name: ")
path2 = raw_input('Enter case: ')
if not os.path.exists(path1):
os.makedirs(path1)
if not os.path.exists(os.path.join(path1, path2):
os.makedirs(path2)
答案 2 :(得分:0)
这应该有效:
import os
import sys
user_input = raw_input("Enter name: ")
user_input1 = raw_input('Enter case: ')
path1 = user_input
if not os.path.exists(path1):
os.makedirs(path1)
path2 = user_input1
if not os.path.exists(os.path.join(user_input, user_input1)):
os.makedirs(os.path.join(path1, path2))