如何使用python将多个输入写入文本文件?

问题描述:

我正在写一个火腿电台记录器。 我想写多个输入,但有换行符。这是我的例子。如何使用python将多个输入写入文本文件?

raw_input = question1(' text here ') 
raw_input = question2(' ') 
f.write(question1) 
print ' ' 
f.write(question2) 
print ' ' 

有没有一种方法来结合到2之间的换行符? 我试过

f.write(question1, "\n" question2, "\n") 

但我得到错误。我只是想缩短它。我对Python很陌生。

+1

'f.write(问题1 + “\ n” 个问题2 + + “\ n” 个)'或'f.write( “{} \ N {} \ n” 个.format(问题1,问题2))' –

q1=raw_input('question 1:') q2=raw_input('question 2:') with open('a.txt','w+') as f: f.writelines(q1+'\n') f.writelines('\n') f.writelines(q2+'\n')

输入
问题1:你好?
问题2:是!

输出:
您好吗?
“换行符”
是的!顺便说一句,如果你想输出一些特殊格式的文件,你可以使用json(import json)。和,最好用“”来处理文件!

您在正确的道路上,只需对代码进行一些更改即可。试试这个大小。

73S

question1 = raw_input('Any question? ') 
question2 = raw_input('What is another question you have? ') 

f = open('filename.txt', 'wb') 
f.write("QUESTION 1 = " + str(question1) + "\nQUESTION 2 = " + str(question2)) 
f.close() 

输出看起来就像这样......

问题1 =什么是业余无线电?
问题2 =我需要一个许可证

+0

仍然这个代码不会添加任何'换行符' – Thiru

+0

是的,完全忘了那个。现在添加 – b8con

你也可以在每个输入的末尾添加一个新行字符\n或输入存储到列表,并将其写入文件

itemlist = [] 
itemlist.append(raw_input("Your question")) 
with open("text_file","w+") as outfile: 
    outfile.write("\n".join(itemlist)) 

注意,with自动关闭打开的文件。

print正在写入标准输出,而不是f(我认为这是一个打开的文件句柄)。 write方法本身不会添加换行符,尽管您当然可以添加换行符。

f.write(''.join(question1, '\n', question2, '\n')) 

将所有内容加入到一个字符串中仅用于打印并不是必需的。你可以写的东西零碎的,和/或使用+字符串的串联,也:

f.write(question1 + '\n') 
f.write(question2 + '\n') 

甚至只是

f.write(question1) 
f.write('\n') 
f.write(question2) 
f.write('\n') 

你可以Python的字符串格式化与格式化成字符串,太插值变量:

f.write('{0}\n{1}\n'.format(question1, question2)) 

或一度盛行%插值算:

f.write('%s\n%s\n' % (question1, question2)) 

在Python 2.6及更高版本中,您可以使用from __future__ import print_function,然后可以使用带有可选file=参数的Python 3 print函数。这实际上是我在这里推荐的。 print默认添加了一个换行符(尽管可以根据需要关闭)。

print(question1, file=f) 
print(question2, file=f)