Python 如果文件为空,则中断程序

Python 如果文件为空,则中断程序,python,file,random,break,Python,File,Random,Break,下面的代码从一个文件中随机选取一个单词,然后删除该单词及其工作状态。我希望程序在文件为空时中断,因为我删除了从文件中随机选取的每个单词 以下是代码的随机部分: 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) 如果文件是空的,就说Break并打印

下面的代码从一个文件中随机选取一个单词,然后删除该单词及其工作状态。我希望程序在文件为空时中断,因为我删除了从文件中随机选取的每个单词

以下是代码的随机部分:

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)
如果文件是空的,就说Break并打印“file Is empty”好吗? 或者,若Random(rand)并没有返回单词,那个么break和print文件是空的

我已经检查了这个网站,有一些关于如何检查文件是否为空、打印文件是否为空、文件大小是否为零或文件中是否没有word的答案。然而,我可以找到一个说,如果文件是空的,就中断程序。当我的文件为空时,我得到下面的错误

--->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
用于提前停止
for
循环。没有显式
break
关键字的循环的默认行为是
continue
,直到迭代器中没有索引为止

这里没有使用循环。因此,当您要求Python中断时,它没有什么可以停止的

break
关键字的示例用法:

for x in range(20):
    if x != 13:
        print(x)
        continue # uneccesary as it will continue by default
    else:
        print("we don't like 13")
        break
您的代码应该是什么(我认为):

你快到了

break
用于提前停止
for
循环。没有显式
break
关键字的循环的默认行为是
continue
,直到迭代器中没有索引为止

这里没有使用循环。因此,当您要求Python中断时,它没有什么可以停止的

break
关键字的示例用法:

for x in range(20):
    if x != 13:
        print(x)
        continue # uneccesary as it will continue by default
    else:
        print("we don't like 13")
        break


Break与continue关键字一起使用。我在代码中看到的任何地方都没有使用循环。如果希望程序停止在该else块中,则需要
return
not
break
您可以在循环中使用break only。在您的情况下,只需使用return来终止您的程序。您的代码中没有要中断的内容。确定您不想返回吗?另外,您只需删除
中断
,然后在打印语句之前键入return即可。如果你想停止整个程序,你可以引发一个异常,甚至只使用
exit(“我无法处理”)
Break与continue关键字一起使用。我在代码中看到的任何地方都没有使用循环。如果希望程序停止在该else块中,则需要
return
not
break
您可以在循环中使用break only。在您的情况下,只需使用return来终止您的程序。您的代码中没有要中断的内容。确定您不想返回吗?另外,您只需删除
中断
,然后在打印语句之前键入return即可。如果你想停止整个程序,你可以引发一个异常,甚至可以使用
exit(“我应付不了”)
谢谢你的解决方案。我只是尝试了返回而不是中断,但在函数外部出现了一个错误,称为“return”。如果它既不在函数中也不在循环中,那么您的预期结果是什么?如果您是从命令行运行的,那么您可以退出()在
else:
块中,我想是吧。我使用了带有exit的try和except错误代码,它对我有效。谢谢你的提示,上面的代码和想法。非常感谢您的解决方案。我只是尝试了返回而不是中断,但在函数外部出现了一个错误,称为“return”。如果它既不在函数中也不在循环中,那么您的预期结果是什么?如果您是从命令行运行的,那么您可以退出()在
else:
块中,我想是吧。我使用了带有exit的try和except错误代码,它对我有效。谢谢你的提示,上面的代码和想法。非常感谢