如果文件为空则中断程序

Break program if file is empty

下面的代码从文件中随机选取一个单词,然后删除该单词,效果很好。我希望程序在文件为空时中断,因为我删除了从文件中挑选的每个随机单词。

这是代码的随机部分:

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)

如果文件为空则中断并打印 "file is empty" 好吗? 或者如果 Random (rand) return 没有单词,则中断并打印文件为空。

我已经查看过这个站点,并且有一些关于如何检查文件是否为空和打印文件是否为空或文件大小为零或文件中没有单词的答案。但是,如果文件为空,我可以找到一个说 BREAK program 的程序。当我的文件为空时,出现以下错误。

--->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

你的代码应该是什么(我认为):

if os.path.getsize("name.txt") == 0:
    print("File is Empty")
else:
    return print("File is not Empty")

你快到了。

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

您在这里没有使用循环。因此,当您要求 Python 到 break 时,它无法停止。

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