Python使用用户输入

时间:2015-06-23 14:29:24

标签: python subdirectory os.path

我正在尝试创建一个创建目录的脚本(名称输入) 并在刚创建的输入文件夹中创建第二个目录。

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

但是这导致它创建了两个独立的目录而不是子目录

3 个答案:

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