我有以下代码:
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)说的语法无效。 我怎么能这样做?
答案 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")