如果文件为空则中断程序

时间:2019-02-28 13:25:30

标签: 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)

如果文件为空并打印“文件为空”,请说中断? 或者,如果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

1 个答案:

答案 0 :(得分:1)

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

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