如何使python输入在函数中工作?



我创建了这个名为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.systemsubprocess.run。您可以使用所有txt.py代码创建一个函数,然后在myfunction()上简单地调用它。如果您确实需要将所有这些代码放在不同的文件中,只需将在txt.py中创建的新函数导入myfunction():

txt.pyfile:

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中创建了一个可复制的示例。你想怎么用就怎么用!

最新更新