在python中的文件中写入多行

时间:2014-01-09 12:13:22

标签: python

我有以下代码:

line1 = raw_input("line 1: ")
line2 = raw_input("line 2: ")
line3 = raw_input("line 3: ")
print "I'm going to write these to the file."
target.write(line1)
target.write("\n")
target.write(line2)
target.write("\n")
target.write(line3)
target.write("\n")

此处target是文件对象,line1,line2,line3是用户输入。 我想只使用一个target.write()命令来编写这个脚本。我尝试过使用以下内容:

target.write("%s \n %s \n %s \n") % (line1, line2, line3)

但是这不会将字符串放在另一个字符串中但是如果我使用以下内容:

target.write(%s "\n" %s "\n" %s "\n") % (line1, line2, line3)

Python解释器(我使用的是Microsoft Powershell)说的语法无效。 我怎么能这样做?

8 个答案:

答案 0 :(得分:30)

你的大括号令人困惑。这样做:

target.write("%s \n %s \n %s \n" % (line1, line2, line3))

甚至更好,使用writelines

target.writelines([line1, line2, line3])

答案 1 :(得分:3)

with open('target.txt','w') as out:
    line1 = raw_input("line 1: ")
    line2 = raw_input("line 2: ")
    line3 = raw_input("line 3: ")
    print("I'm going to write these to the file.")
    out.write('{}\n{}\n{}\n'.format(line1,line2,line3))

答案 2 :(得分:3)

至少在我看来更直观的另一种方式:

target.write('''line 1
line 2
line 3''')

答案 3 :(得分:1)

假设您不想在每个新行使用空格:

viewDidAppear

适用于版本3.6

答案 4 :(得分:1)

我注意到这是一本书中的学习练习"学习Python的艰难之路"。虽然您在3年前就已经问过这个问题了,但是我发布这个问题给新用户说不要直接在stackoverflow中提问。至少在询问之前阅读文档。

就问题而言,使用writelines是最简单的方法。

像这样使用:

target.writelines([line1, line2, line3])

正如烷烃所说,你用括号搞砸了,按照他说的说法。

答案 5 :(得分:1)

也可以这样做: target.write(第1行+“ \ n” +第2行+“ \ n” +第3行+“ \ n”)

答案 6 :(得分:0)

这也有效:

target.write("{}" "\n" "{}" "\n" "{}" "\n".format(line1, line2, line3))

答案 7 :(得分:-1)

variable=10
f=open("fileName.txt","w+") # file name and mode
for x in range(0,10):
    f.writelines('your text')
    f.writelines('if you want to add variable data'+str(variable))
    # to add data you only add String data so you want to type cast variable  
    f.writelines("\n")