Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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程序中写入文本)_Python_File_Input_Output_File Io - Fatal编程技术网

输入到单独的文件(让用户在python程序写入文件时在python程序中写入文本)

输入到单独的文件(让用户在python程序写入文件时在python程序中写入文本),python,file,input,output,file-io,Python,File,Input,Output,File Io,如何让用户在python程序中编写文本,并使用open“w”将其传输到文件中 我只知道如何使用打印将文本写入单独的文档。但是,如果我想将输入写入文件,该如何做呢?简而言之:让用户自己将文本写入单独的文档 以下是我目前的代码: def main(): print ("This program let you create your own HTML-page") name = input("Enter the name for your HTML-page (end it wi

如何让用户在python程序中编写文本,并使用open“w”将其传输到文件中

我只知道如何使用打印将文本写入单独的文档。但是,如果我想将输入写入文件,该如何做呢?简而言之:让用户自己将文本写入单独的文档

以下是我目前的代码:

def main():

    print ("This program let you create your own HTML-page")

    name = input("Enter the name for your HTML-page (end it with .html): ")

    outfile = open(name, "w")

    code = input ("Enter your code here: ")

    print ("This is the only thing getting written into the file", file=outfile)

main ()

首先,使用原始输入而不是输入。这样,您可以将文本捕获为字符串,而不是尝试对其求值。但要回答你的问题:

with open(name, 'w') as o:
    o.write(code)
如果您希望用户在键入html文件时能够按enter键,还可以将该代码环绕在一个循环中,该循环会一直重复,直到用户按到某个键为止

编辑:允许连续用户输入的循环示例:

with open(name, 'w') as o:
    code = input("blah")
    while (code != "exit")
        o.write('{0}\n'.format(code))
        code = input("blah")
这样,循环将一直运行,直到用户键入“exit”或您选择的任何字符串。格式行在文件中插入换行符。我仍然使用python2,所以我不完全确定input如何处理换行符,但是如果它包含换行符,请随意删除格式行并如上所述使用它

def main():

    print ("This program let you create your own HTML-page")

    name = input("Enter the name for your HTML-page (end it with .html): ")

    outfile = open(name),'w')

    code = input ("Enter your code here: ")

    outfile.write(code)

main ()

这不接受多行代码条目。你需要一个额外的模块

我使用输入是因为我使用的是python 3,所以原始输入不起作用。好的,非常感谢我会试试这个!我只为用户登录做了简单的if和while循环,所以不确定我是否能够编写这种循环,但这肯定是我想要的程序。有没有可能你可以告诉我是怎么做的?我已经按照你说的做了尝试,似乎我不需要格式行。但这似乎是双向的。问题是程序只将我写入文档的最后一行写入。因此,不知何故,程序没有“存储”我写的所有内容,只有最后一行。哎呀,这是我的错,请看更新的版本,我一直在打开文件进行“写入”,这破坏了所有以前的更改。这是wierd。我按照你的解释写的。问题是在我的第一行代码(当我按enter键时)之后,程序停止运行,下一个“输入你的代码”没有显示,我什么也做不了。当我键入第一行时,循环似乎被卡住了,然后它将该行循环到文本文档中。例如:我开始打字并按enter键,但什么也没发生,所以我关闭了终端。当我打开html文件的时候,它一遍又一遍地重复了数千次,这似乎是一个奇怪的特定的“改进”,并没有被要求。为什么要将文件名限制在用户主目录中?我想你是对的。默认情况下,我只要在调用文件时这样做。我从来没有想过不包括目录。如果你跳过它,那么用户可以把它放在任何他们想要的地方。本例中的一个用例可能是web服务器所在的任何地方,它几乎肯定不直接在家中
outfile.write(code)
,完成后:
outfile.close()