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

问题描述 投票:0回答:1

下面的代码从文件中选择一个随机单词,然后删除该单词并使其工作得很好。我希望程序在文件为空时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和print文件为空。

我已经检查了这个网站,并且有一些关于如何检查文件是否为空并且打印文件为空或文件大小为零或文件中没有单词的答案。但是,如果文件为空,我可以找到一个说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
python file random break
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.