我正在创建一个非常基本的python程序,允许用户输入一个命令然后作为代码运行。
例如,我导入了一个名为textScripts.py的文件:在该文件中有一个名为createFile()
的函数。当用户输入textScripts.createFile()
时,会将其传递到exec()
。它运行没有错误并退出程序,但文件没有创建!
我知道createFile()
函数有效,因为如果我将textScripts.createFile()
放在代码中,它会创建一个文件。
以下是相关的代码片段:
commandList=[]
while(commandRun):
count = 0
commandList.append(input(">>>"))
exec(commandList[count])
print(commandList[count])
count += 1
here is a screenshot of the code being run:
>>> textScripts.createFile()
>>>
here is a screenshot of the folder:
__pyCache__
textScripts.py
CLIFile.py
此文件夹中应该有一个文件
这是函数createFile()
:
def createFile(
destination = os.path.dirname(__file__),
text = "Sick With the Python\n"
):
''' createFile(destination, text)
This script creates a text file at the
Specified location with a name based on date
'''
date = t.localtime(t.time())
name = "%d_%d_%d.txt" %(date[1], date[2], date[0])
if not(os.path.isfile(destination + name)):
f = open(destination + name, "w")
f.write( text )
f.close
else:
print("file already exists")
如果这是一个明显的问题,我提前道歉;我是python的新手,并且一直在寻找答案,为什么会发生这种情况。
答案 0 :(得分:1)
您将文件保存到错误的文件夹(您可以在功能中插入"打印(目的地+名称)"
你需要替换它:
destination + name
到此:
os.path.join(destination, name)
PS:
例如:
with open('file.txt', 'w') as f:
f.write('line')