在python中写入文本文件时,如何在单词之间创建空格

时间:2015-01-07 18:32:09

标签: python writing

以下代码写入文本文件

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"

5 个答案:

答案 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"提供替换。和"分数"占位符。