目录创建的问题



已解决

感谢@James,这个问题得到了完全解决!

解决方案 创建特定功能以创建目录,如下所示:

# SETTINGS.PY
pathNAME = '../Location'
PathName2 = pathNAME + '/Location2'
# Define Functions
def make_dir(directoryName):
    if os.path.exists(directoryName):
        if os.path.isdir(directoryName):
            return False
    os.mkdir(directoryName)
    print(directoryName)
    return True

,然后在主脚本中

import settings
settings.make_dir(settings.pathNAME)
settings.make_dir(settings.pathName2)

那就是你的做法!感谢所有试图提供帮助的人!额外感谢@james !!

原始帖子


视频

视频显示了我所有的代码和问题

描述

基本上,如果不存在,我正在尝试为项目创建文件夹,但是,当我运行创建文件夹的.py文件时,它只会创建两个文件,然后声称所有文件已经存在。即使在文件资源管理器中它们不存在(当我做LS时,它们也不存在(。我尝试将变量移动到同一文件中,并且,我尝试摆脱IF语句,我也尝试执行os.mkdir()&将Antiveok设置为真。我永远不会遇到任何错误

控制台输出

第一次运行(不存在文件夹(

True  # Main Directory: It thinks the base directory already exists
False # Logs Directory: It knows that the other directories do not exist
False # Users Directory: ^
False # Inventory Directory: ^^
False # Stats Directory: ^^^
../FrozenDesert # It Created The Base Directory
../FrozenDesert/Users # It Created The Users Directory

第二次运行(用户& Main Directory存在(

True  # Main Directory: Knows it exists
True  # Logs Directory: Thinks it exists
True  # Users Directory: Knows it exists
True  # Inventory Directory: Thinks it exists
True  # Stats Directory: Thinks it exists
      # No Directories were created

代码

登录目录(无关(

#Imports
import time
import os
import settings

#  Request User Input
print('Welcome To The Frozen Desert. Would You Like To Register Or Sign In?')
print(" ")
while True:
    # Store User Input
    identity = raw_input("Login [L] / Register [R]: ")
    # Checks To See If The Answer Is Appropriate
    if identity.lower() not in ('l', 'r'):
        continue
    print(" ")
    break
#TODO: Make Te Login & Registration Functions Work
# Begins User Login
if identity.lower() == "l":
    print("Opening Login Pane")
    time.sleep(1)
    # Clears Screen
    i = 0
    while i <= 50:
        print(" ")
        i += 1
#Begins User Registration
if identity.lower() == "r":
    print("Opening Registration Pane")
    # Clears Screen
    i = 0
    time.sleep(1)
    while i <= 50:
        print(" ")
        i += 1

设置目录(变量(

# Imports
import os

# Define Locations
pathBase = '../FrozenDesert'
pathUsers = pathBase + '/Users'
pathInventory = pathUsers + '/Inventory'
pathStats = pathUsers + '/Stats'
pathLogs = pathBase + '/Logs'
directoryMain = os.path.dirname(pathBase)
directoryUsers = os.path.dirname(pathUsers)
directoryUserStats = os.path.dirname(pathStats)
directoryUserInventory = os.path.dirname(pathInventory)
directoryLogs = os.path.dirname(pathLogs)

启动管理(创建目录和内容(

# Imports
import os
import settings
# Create Directories
print(os.path.isdir(settings.directoryMain))
print(os.path.isdir(settings.directoryLogs))
print(os.path.isdir(settings.directoryUsers))
print(os.path.isdir(settings.directoryUserInventory))
print(os.path.isdir(settings.directoryUserStats))
# TODO: Make Evrything Below Work
# Main Directory
if not os.path.isdir(settings.directoryMain):
    print(settings.directoryMain)
    os.makedirs(settings.directoryMain)
# Users Directory
if not os.path.isdir(settings.directoryUsers):
    print(settings.directoryUsers)
    os.makedirs(settings.directoryUsers)
# Logs Directory
if not os.path.exists(settings.directoryLogs):
    print(settings.directoryLogs)
    os.makedirs(settings.directoryLogs)
# User-Stats Directory
if not os.path.isdir(settings.directoryUserStats):
    print(settings.directoryUserStats)
    os.makedirs(settings.directoryUserStats)
# User-Inventory Directory
if not os.path.isdir(settings.directoryUserInventory):
    print(settings.directoryUserInventory)
    os.makedirs(settings.directoryUserInventory)

过去,我对

的运气更好
if not os.path.exists(dir):
    os.mkdir(dir)

如果那不起作用,那么可能是您正在使用的相对文件路径。您可以尝试使用

之类的东西在运行时间为基本路径获取完整的路径
base_path = os.path.dirname(os.path.realpath(__file__))

尽管我对您的目录结构并不完全肯定,因此可能需要在获得工作目录后进行调整。

您可以使用 os检查路径是否存在,如果确实存在,请检查它是否是目录,否则要制作新目录。

import os
def make_new_dir(d):
    if os.path.exists(d):
        if os.path.isdir(d):
            return False
    os.path.mkdir(d)
    return True

最新更新