【发布时间】:2019-02-28 13:25:30
【问题描述】:
下面的代码从文件中随机选择一个单词,然后删除该单词,它的工作效果很好。我希望程序在文件为空时中断,因为我删除了从文件中挑选的每个随机单词。
这是代码的随机部分:
import random
import os
g = r"C:\Users\Homer\name.txt"
lines = [line.rstrip('\n') for line in open(g)]
rand = random.choice(lines)
print(rand)
如果文件为空并打印“文件为空”,是否可以说中断? 或者如果 Random (rand) 不返回任何单词,则中断并打印文件为空。
我已经检查了这个网站,并且有一些关于如何检查文件是否为空和打印文件是否为空或文件大小为零或文件中没有单词的答案。但是,如果文件为空,我可以找到一个说 BREAK 程序的程序。当我的文件为空时,我收到以下错误。
--->rand = random.choice(lines)
IndexError: Cannot choose from an empty sequence
目前我正在使用下面的代码来检查文件是否为空。但我不断收到 break 语句的错误。
if os.path.getsize("name.txt") == 0:
print("File is Empty")
else:
print("File is not Empty")
break
----> SyntaxError: 'break' outside loop
【问题讨论】:
-
Break 与 continue 关键字结合使用。我在这段代码中看到的任何地方都没有使用循环。如果您希望程序在 else 块中停止,那么您需要
return而不是break -
您只能在循环中使用 break。在您的情况下,只需使用 return 来终止您的程序。
-
您的代码中没有
break。你确定不要vreturn? -
此外,您可以删除
break并在您的打印语句之前键入 return。或者之后,没有太大区别。 -
如果你想停止你的整个程序,你可以抛出一个异常,或者直接使用
exit("I can't cope")