【发布时间】:2015-10-12 00:29:02
【问题描述】:
我正在用 python 编写一个简单的日志程序。我使用了sys.stdin.readlines(),因此用户可以按回车键开始一个新段落,而不必退出程序。问题是当它将输入写入文本文件时,它会跳过他们输入的第一段。所以他们在开始新行之前写的任何东西都不会写入文件。
#!/usr/bin/python
import sys
def main(): #begin stand alone program
print "\nPlease tell me about your day.\n";
userEntry = raw_input() #assigns user's input
todayEntry = userEntry
todayEntry = sys.stdin.readlines()
print "\nThank you! See you tomorrow!\n"
with open('journal.txt', 'a') as f:
f.writelines(todayEntry) #write user's input to txt file
if __name__ == '__main__':
main() #call to main() and complete program
【问题讨论】:
-
userEntry = raw_input()读取一行,然后将其分配给todayEntry,然后丢弃此数据并用readlines()结果覆盖它。基本上,raw_input()是不需要的。 -
基本上,删除
sys.stdin.realines()行。它似乎没有多大用处。如果您想阅读多个段落,您可能需要在while中使用raw_input,并在特殊命令上使用break