Python 使用用户输入创建子目录

Python creating subdirectory with user input

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

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

但这会导致它生成两个单独的目录而不是子目录

要创建子目录,您需要连接两个输入之间的分隔符,可以这样做:

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

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)

这应该有效:

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