已解决
感谢@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