使字母出现在同一行,而不是每个字母出现在自己的行上

时间:2013-12-12 17:27:15

标签: python

我的代码:

import random
import time
a = open("settings.txt", "r")
b = open("settings.txt", "a")
adding = input("Enter Name: ")
with open("settings.txt", "a") as f:
     f.write('\n'.join(str(i) for i in adding))
data = a.readlines()
print (data)
time.sleep(10)

我的settings.txt文件:

(empty)

当我运行代码时:

Enter Name: John
['Blah 1\n', 'Blah 2\n', 'Blah 3\n', 'J\n', 'o\n', 'h\n', 'n']

运行代码后的我的setting.txt文件:

J
o
h
n

我的问题: 我正在尝试编写一个代码,它允许我写一个名字或一般单词,然后它会写/编辑txt文件(settings.txt)。当我输入名称/单词时,名称/单词的所有字母(在本例中为john)都显示在不同的行上。我希望它们出现在一条线上(不是分布在四条线上,而是全部在一条线上)。我该怎么办?此外,当我打印txt文件(settings.txt)上的任何内容时,它在每行后面都是'\ n'。我该如何去除它?

2 个答案:

答案 0 :(得分:1)

您逐个字符地迭代adding,并将它们分别写在一个单独的行中。你应该简单地写adding,因为它是

f.write(adding)

修改:要在新行中编写当前名称,您可以使用此类format方法

f.write("\n{}".format(adding))

答案 1 :(得分:0)

你可以试试这个。

adding = input("Enter Name: ")

with open("settings.txt", "a") as f:
    f.write(adding)

with open("settings.txt", "r") as fp:
    print(fp.readlines())