Прервать программу, если файл пуст - PullRequest
0 голосов
/ 28 февраля 2019

Приведенный ниже код выбирает случайное слово из файла, а затем удаляет слово и оно отлично работает.Я хочу, чтобы программа 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если файл пуст и вывести «файл пуст»?Или, если 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

1 Ответ

0 голосов
/ 28 февраля 2019

Каким должен быть ваш код (я думаю):

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