我想制作一个打印用户写的句子的程序,并将其垂直打印到文件中。我当前的代码是:
# Create a program that takes sentence from user, and splits
# the words into a list.
# Then write the list into a a file vertically.
# Take sentence from user
sentence = raw_input('Write a sentence :')
# Split the words of sentence
splited = str(sentence.split())
print splited
# Write to file
f=open('C:\Users\QamarAli\Desktop\HelloFile.txt', 'w')
for i in range(len(splited)):
f.writelines(splited)
f.writelines("\n")
f.close()
如果我输入句子Hi i am aFAFAF,那么文本文件的内容是:
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
[u'Hi', u'i', u'am', u'aFAFAF']
我希望它成为
Hi i am aFAFAF
请您参考如下方法:
就这么简单
f.write('\n'.join(sentence.split()))
甚至不需要创建 splited 变量(如果需要,您甚至可以删除 sentence 变量:f.write('\n'.加入(raw_input().split()))).
如果你想坚持 for 循环,你可能打算做这样的事情:
splited = sentence.split() # notice no `str`
for i in range(len(splited)):
f.write(splited[i])
f.write('\n')
或者更简单地说:
for s in sentence.split():
f.write(s + '\n')
请注意,此方法将始终留下尾随换行符,而 f.write('\n'.join(sentence.split())) 不会。如果需要,您可以使用
f.write('\n'.join(sentence.split()) + '\n')
