【发布时间】:2018-10-06 15:07:15
【问题描述】:
我的简单任务是编写一个请求文件名的函数,然后反复从用户那里读取行并将这些行保存到命名文件中。
当用户输入本身是一行上的一个点时,它会停止保存行。不保存包含单个点的行。
示例输出如下所示:
Save to what file: mytest.txt
> This is
> my attempt at
> the problem.
>
> The last line was empty
> .
Saving file mytest.txt
5 lines saved
这是我的尝试:
def savefile():
filename = input("Save to what file: ")
infile = open(filename, "w")
line = ""
lineCount = 0
while line != ".":
line = input("> ")
infile.write(line + "\n")
lineCount += 1
print("Saving file", filename)
print(lineCount, "lines saved")
infile.close()
效果很好,除了我的while 循环还保存了最后一行(“。”本身在一行上)。我也试过if-else循环:
if line != ".":
line = input("> ")
infile.write(line + "\n")
lineCount += 1
else:
infile.close()
但这只是保存输入的第一行。
如何排除输入的最后一行?
【问题讨论】:
标签: python-3.x file for-loop while-loop