我创建了这个名为txt.py
的简单脚本,它要求用户输入文本并将其写入文本文件(它有效):
f = open('test.txt', 'w')
txt = input('Text : ')
f.write(txt)
f.close()
我遇到的问题是,我必须使用这个脚本到另一个python脚本调用函数,例如test.py
。我用:
def myfunction():
# some code
os.system("python txt.py 1")
,这并不像预期的那样工作,我的文本文件编辑可是空,因为控制台的输入字段不显示。
我也尝试了subprocess.run(["python", 'txt.py'])
并得到相同的结果。
你知道怎么修理它吗?
您不需要使用os.system
或subprocess.run
。您可以使用所有txt.py
代码创建一个函数,然后在myfunction()
上简单地调用它。如果您确实需要将所有这些代码放在不同的文件中,只需将在txt.py
中创建的新函数导入myfunction()
:
txt.py
file:
def input_text():
f = open('text.txt', 'a')
txt = input('text : ')
f.write(txt)
f.close
test.py
文件:
from txt import input_text
def another_function():
input_text()
another_function()
当你调用test.py
时,它会工作得很好。
Ob。:我假设你的文件在同一个目录下,这就是为什么我使用from txt import input_text
我想建议在将输入文本写入text.txt
文件时使用f.write(f'{txt}n)
,将每个输入放在一行中。
最后,我在我的一个github repo中创建了一个可复制的示例。你想怎么用就怎么用!