2015-06-23 31 views
0

我想制作一个脚本,使目录(名称输入) ,并在刚刚创建的输入文件夹中创建第二个目录。Python创建用户输入的子目录

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

你做平均'os.path.join(USER_INPUT,user_input1)'。你写的是用'user_input1'分割(字符串)'user_input'。 – dhke

回答

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不会创建子目录。

+0

感谢它的工作! – theButcher

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) 
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))