我正在用python编写一个简单的日记程序。我使用了sys.stdin.readlines()
,因此用户可以按Enter键开始新的段落,而不必编程退出。问题是当它将输入写入文本文件时,它会跳过它们输入的第一段。所以他们在开始新行之前写的任何东西都没有写到文件中。
#!/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
答案 0 :(得分:0)
您正在使用userEntry = raw_input()
阅读输入,因此userEntry
现在包含用户输入的第一行(因为这是raw_input()
所做的事情)。然后,您使用todayEntry = sys.stdin.readlines()
阅读更多输入。 todayEntry
现在包含用户输入的其他内容(从sys.stdin.readlines()
返回)。然后您将todayEntry
写入文件,因此该文件包含用户在第一行之后输入的内容。
答案 1 :(得分:0)
您可以这样做:
import sys
todayEntry = ""
print "Enter text (press ctrl+D at the last empty line or enter 'EOF'):"
while True:
line = sys.stdin.readline()
if not line or line.strip()=="EOF":
break
todayEntry += line
print "todayEntry:\n"
print todayEntry
示例输入:
111
222
333
ctrl+D
输出:
111
222
333