以下代码写入文本文件
if classno== '1':
f = open("class1.txt", "a")
if classno== '2':
f = open("class2.txt", "a")
if classno== '3':
f = open("class3.txt", "a")
f.write(name)
f.write(score)
f.close()
然而,在文本文件中,名称和分数之间没有空格,例如,我怎么能改变" James14"进入"詹姆斯14"
答案 0 :(得分:8)
你可以尝试
f.write(name)
f.write(' ')
f.write(score)
或者
f.write(name + ' ')
f.write(score)
或者
f.write(name )
f.write(' ' +score)
或者
f.write("{} {}".format(name,score))
或者
f.write("%s %s"%(name,score))
或者
f.write(" ".join([name,score]))
答案 1 :(得分:3)
你必须写那个空间:
f.write(name)
f.write(' ')
f.write(score)
或使用字符串格式:
f.write('{} {}'.format(name, score))
如果您使用的是Python 3或使用from __future__ import print_function
,您还可以使用print()
function,并为其添加空间:
print(name, score, file=f, end='')
我将end
设置为空字符串,否则您还会获得换行符。当然,如果您正在为文件写入多个名称和分数,并且每个条目都需要在自己的行上,可能 >
答案 2 :(得分:2)
一种简单的方法是简单地与空格字符连接
f.write(name + ' ' + score)
更健壮的方法(如果格式化更多涉及)是使用format
方法
f.write('{} {}'.format(name, score))
答案 3 :(得分:1)
Bhargav和Martjin的答案很好。有很多方法可以做到这一点。我想补充说.format
方式似乎更好一些,因为您可以重用参数并更好地组织代码。
答案 4 :(得分:0)
您应格式化字符串。
output = "%(Name)s %(Score)s" %{'Name': name, 'Score':score}
f.write(output)
f.close()
基本上,%(Name)s是一个字符串的占位符(用%表示)(用括号后面的s表示),我们将通过" Name"来引用它。按照我们的格式字符串,包含在""中,我们有这个奇怪的事情:
%{'姓名':姓名,'得分':得分}
这是一个字典,为" Name"提供替换。和"分数"占位符。