Python 3.7: Как я могу прочитать весь файл с readlines (), кроме первой строки? - PullRequest
1 голос
/ 02 октября 2019

Я кодирую словарную программу, в которой вы можете ввести столько слов, сколько хотите, с их переводом на другой язык. Эти слова сохраняются в текстовом файле. Затем вы можете открыть этот файл в консоли Python, и программа спросит вас слово, и вы должны ввести перевод на другом языке. Но в первой строке у меня есть два языка, а потом я разделил их и снова использую. Но когда программа запрашивает словарь, я использую readlines (), но затем программа также запрашивает перевод языка (первая строка), например:

German
Translation: 

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

Большое спасибо за вашу помощь! И вот мой код, где я читаю строки:

with open(name + ".txt", "r") as file:
        for line in file.readlines():
            word_1, word_2 = line.split(" - ")
            newLanguage_1.append(word_1)
            newLanguage_2.append(word_2)

Ответы [ 3 ]

2 голосов
/ 02 октября 2019

Вы можете пропустить первую строку, вызвав next на fd (поскольку объект файла является итератором), например,

with open("{}.txt".format(name), "r") as file:
        next(file) # skip the first line in the file
        for line in file:
            word_1, _ , word_2 = line.strip().partition(" - ") # use str.partition for better string split
            newLanguage_1.append(word_1)
            newLanguage_2.append(word_2)
2 голосов
/ 02 октября 2019

Просто пропустите первую строку, файловый объект file представляет собой итератор, дающий строки:

with open(f"{name}.txt", "r") as file:
     next(file)
     for line in file:
         word_1, word_2 = line.split(" - ")
         newLanguage_1.append(word_1)
         newLanguage_2.append(word_2)

Как понимание:

with open(f"{name}.txt", "r") as file:
     next(file)
     newLanguage_1, newLanguage_2 = zip(*(l.split(" - ") for l in file))
0 голосов
/ 02 октября 2019

Вы можете добавить счетчик.

with open(name + ".txt", "r") as file:
    i=0
    for line in file.readlines():
        if i==0:
            pass
        else:
            word_1, word_2 = line.split(" - ")
            newLanguage_1.append(word_1)
            newLanguage_2.append(word_2)
        i+=1
...