Как я могу прочитать строку из файла и разбить его - PullRequest
0 голосов
/ 03 февраля 2020

Я застрял на небольшом фрагменте кода и не могу заставить его работать.

from random import randint

def random_song():
    global song
    linenum = randint(1,43)
    open('data.txt')
    band_song = readlines."data.txt"(1)
    global band
    band = band_song.readlines(linenum)
    song = band_song.split(" ,")

Я пытаюсь сгенерировать случайное число между 1-й и последней строкой текстовый файл, а затем прочитать эту указанную c строку. Затем разделите строку на 2 строки. Например: строка 26 «Железная дева, Призрак оперы» разделена на «Железная дева», а затем «Призрак оперы»

Кроме того, как мне разбить вторую строку на первую букву каждого слова и чтобы это работало для любой длины и количества букв в слове и количестве слов?

Спасибо, MiniBitComputers

1 Ответ

0 голосов
/ 03 февраля 2020

В вашей разделенной строке есть пробел, он вам не нужен, просто разделите на ',' и используйте .strip(), чтобы избавиться от пробелов на внешней стороне результата.

Есть некоторые странный код вокруг чтения кода, а также. И вы разделяете список строк чтения, а не только строку, которую хотите прочитать.

Также нет необходимости использовать глобалы, это плохая практика, и ее лучше избегать почти во всех случаях.

Все, что исправлено:

from random import randint

def random_song():
    with open('data.txt') as f:
        lines = f.readlines()
    artist, song = lines[randint(1,43)].split(',')
    return artist.strip(), song.strip()

print(random_song())

Обратите внимание, что использование with обеспечивает закрытие файла после окончания блока with.

Что касается получения первой буквы каждого слова:

s = 'This is a bunch of words of varying length.'
first_letters = [word[0] for word in s.split(' ')]
print(first_letters)
...