Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将所有用户输入保存在文本文件中?_Python_Txt - Fatal编程技术网

Python 如何将所有用户输入保存在文本文件中?

Python 如何将所有用户输入保存在文本文件中?,python,txt,Python,Txt,我做了一份调查问卷,我想把用户的所有输入保存到一个文本文件中。你知道我能做什么吗 def start(): print("Hallo, ich bin Roni, Ihr Assistent rund um das Verhalten mit einem Coronaverdacht! ") print("Ich stelle Ihnen folgend einige wichtige Fragen.") print("B

我做了一份调查问卷,我想把用户的所有输入保存到一个文本文件中。你知道我能做什么吗

def start():
    print("Hallo, ich bin Roni, Ihr Assistent rund um das Verhalten mit einem Coronaverdacht! ")
    print("Ich stelle Ihnen folgend einige wichtige Fragen.")
    print("Bitte achten Sie darauf Ja und Nein zu benutzen, außer Sie sind explizit dazu aufgefordert eine offene Frage zu beantworten!")
    print("Aus Datenschutzgründen teile ich Ihnen mit, dass die Konversation gespeichert wird.")
    print("Dies hilft uns dabei wichtige Daten schnell an die nötigen Instanzen zu schicken.")
    print("Na gut, dann fangen wir mal an :-)")

def verdacht():
    möglicher_verdacht = input("Haben Sie den Verdacht an COVID-19 erkrankt zu sein? (Ja/Nein): ")
    if möglicher_verdacht == "Ja":
        print("Ok, dann folgen nun ein paar Fragen! ")
    else:
        print("Bleiben Sie gesund und achten Sie auf die AHA+L Regel! ")
        
def kontakt():
    kontakt = input("Hatten Sie Kontakt mit einer an COVID-19 infizierten Person? (Ja/Nein): ")
    if kontakt == "Ja":
        symptome()
    else:
        symptome()

您可以使用一个列表来存储所有输入,并在最后创建一个文件

创建列表:

list = []
向列表中添加:

list.append(data to add)
打开/创建文件并写入:

file = open("filename.txt", "w")
file.write(list)
将在与脚本相同的文件夹中创建该文件

完成后关闭文件:

file.close()

您可以使用一个列表来存储所有输入,并在最后创建一个文件

创建列表:

list = []
向列表中添加:

list.append(data to add)
打开/创建文件并写入:

file = open("filename.txt", "w")
file.write(list)
将在与脚本相同的文件夹中创建该文件

完成后关闭文件:

file.close()

一种方法是在运行Python脚本的级别捕获输出。例如,在Linux提示符下,您可以使用
tee
工具将脚本的输出定向到文件

要将所有输出写入脚本中的文件,需要更改代码,将输入和输出发送到两个位置。您可以用一种奇特的方式来实现这一点,方法是更改标准输入和输出流的定义,使它们能够做到这一点。这是一件复杂的事情,要做到恰到好处

另一种选择是让您的代码使用自定义的
打印
输入
函数,这些函数将所有输出重定向到控制台和您选择的文件

我知道您要求只将用户输入重定向到文件,但我发现您通常希望保存输入和输出,以便在了解用户为什么输入他们所做的事情方面有一些上下文可供使用。 因此,最灵活的解决方案是通过自定义的
print
input
例程重定向打印的消息和用户输入,但是有一个开关,可以让您指示是同时保存消息和用户输入,还是只保存用户输入

下面是如何做到这一点的演示:

log_file_path = "/tmp/logfile.txt"
save_messages = False

def myprint(msg):
    if save_messages:
        with open(log_file_path, "a") as f:
            f.write(msg + '\n')
    print(msg)


def myinput(msg):
    with open(log_file_path, "a") as f:
        if save_messages:
            f.write(msg)
        result = input(msg)
        f.write(result + '\n')
    return result


def start():
    myprint("Hallo, ich bin Roni, Ihr Assistent rund um das Verhalten mit einem Coronaverdacht! ")
    myprint("Ich stelle Ihnen folgend einige wichtige Fragen.")
    myprint(
        "Bitte achten Sie darauf Ja und Nein zu benutzen, außer Sie sind explizit dazu aufgefordert eine offene Frage zu beantworten!")
    myprint("Aus Datenschutzgründen teile ich Ihnen mit, dass die Konversation gespeichert wird.")
    myprint("Dies hilft uns dabei wichtige Daten schnell an die nötigen Instanzen zu schicken.")
    myprint("Na gut, dann fangen wir mal an :-)")


def verdacht():
    möglicher_verdacht = myinput("Haben Sie den Verdacht an COVID-19 erkrankt zu sein? (Ja/Nein): ")
    if möglicher_verdacht == "Ja":
        myprint("Ok, dann folgen nun ein paar Fragen! ")
    else:
        myprint("Bleiben Sie gesund und achten Sie auf die AHA+L Regel! ")


def kontakt():
    kontakt = myinput("Hatten Sie Kontakt mit einer an COVID-19 infizierten Person? (Ja/Nein): ")
    if kontakt == "Ja":
        symptome()
    else:
        symptome()
此代码的运行方式与原始版本相同,但执行后,用户的输入将保存到文件“/tmp/logfile.txt”。如果您将
save_messages
设置为
True
而不是
False
,则进入控制台的所有文本,包括消息和用户输入,都将在文件
/tmp/logfile.txt
中找到

如果您确实只想保存输入,因此不想使代码复杂化以允许保存消息输出,则可以使用相同的技术来替换
输入
函数。然后,您可以这样定义自定义输入函数:

def myinput(msg):
    with open(log_file_path, "a") as f:
        result = input(msg)
        f.write(result + '\n')
    return result

一种方法是在运行Python脚本的级别捕获输出。例如,在Linux提示符下,您可以使用
tee
工具将脚本的输出定向到文件

要将所有输出写入脚本中的文件,需要更改代码,将输入和输出发送到两个位置。您可以用一种奇特的方式来实现这一点,方法是更改标准输入和输出流的定义,使它们能够做到这一点。这是一件复杂的事情,要做到恰到好处

另一种选择是让您的代码使用自定义的
打印
输入
函数,这些函数将所有输出重定向到控制台和您选择的文件

我知道您要求只将用户输入重定向到文件,但我发现您通常希望保存输入和输出,以便在了解用户为什么输入他们所做的事情方面有一些上下文可供使用。 因此,最灵活的解决方案是通过自定义的
print
input
例程重定向打印的消息和用户输入,但是有一个开关,可以让您指示是同时保存消息和用户输入,还是只保存用户输入

下面是如何做到这一点的演示:

log_file_path = "/tmp/logfile.txt"
save_messages = False

def myprint(msg):
    if save_messages:
        with open(log_file_path, "a") as f:
            f.write(msg + '\n')
    print(msg)


def myinput(msg):
    with open(log_file_path, "a") as f:
        if save_messages:
            f.write(msg)
        result = input(msg)
        f.write(result + '\n')
    return result


def start():
    myprint("Hallo, ich bin Roni, Ihr Assistent rund um das Verhalten mit einem Coronaverdacht! ")
    myprint("Ich stelle Ihnen folgend einige wichtige Fragen.")
    myprint(
        "Bitte achten Sie darauf Ja und Nein zu benutzen, außer Sie sind explizit dazu aufgefordert eine offene Frage zu beantworten!")
    myprint("Aus Datenschutzgründen teile ich Ihnen mit, dass die Konversation gespeichert wird.")
    myprint("Dies hilft uns dabei wichtige Daten schnell an die nötigen Instanzen zu schicken.")
    myprint("Na gut, dann fangen wir mal an :-)")


def verdacht():
    möglicher_verdacht = myinput("Haben Sie den Verdacht an COVID-19 erkrankt zu sein? (Ja/Nein): ")
    if möglicher_verdacht == "Ja":
        myprint("Ok, dann folgen nun ein paar Fragen! ")
    else:
        myprint("Bleiben Sie gesund und achten Sie auf die AHA+L Regel! ")


def kontakt():
    kontakt = myinput("Hatten Sie Kontakt mit einer an COVID-19 infizierten Person? (Ja/Nein): ")
    if kontakt == "Ja":
        symptome()
    else:
        symptome()
此代码的运行方式与原始版本相同,但执行后,用户的输入将保存到文件“/tmp/logfile.txt”。如果您将
save_messages
设置为
True
而不是
False
,则进入控制台的所有文本,包括消息和用户输入,都将在文件
/tmp/logfile.txt
中找到

如果您确实只想保存输入,因此不想使代码复杂化以允许保存消息输出,则可以使用相同的技术来替换
输入
函数。然后,您可以这样定义自定义输入函数:

def myinput(msg):
    with open(log_file_path, "a") as f:
        result = input(msg)
        f.write(result + '\n')
    return result
获取用户输入

user\u input=input('user input:'))
存储在列表中

user_list=[]
用户列表。追加(用户输入)
使用上下文管理器打开文件,这样就不必显式关闭, 然后循环浏览列表并保存数据

打开('user_input.txt','a')作为文件的
:
对于用户列表中的项目:
file.write(项+“\n”)
获取用户输入

user\u input=input('user input:'))
存储在列表中

user_list=[]
用户列表。追加(用户输入)
使用上下文管理器打开文件,这样就不必显式关闭, 然后循环浏览列表并保存数据

打开('user_input.txt','a')作为文件的
:
对于用户列表中的项目:
file.write(项+“\n”)

您是否在线搜索解决方案?e、 这回答了你的问题吗?你在网上搜索过解决方案吗?e、 这回答了你的问题吗?非常感谢你!你保存了我的演示文稿!酷。我很高兴能为您提供帮助。请单击答案左侧的复选标记,表示它回答了您的问题。非常感谢!您保存了我的演示文稿!太棒了。我很高兴能为您提供帮助。请单击答案左侧的复选标记,表示它回答了您的问题。