Подтвердить что ты не робот

Создайте список, содержащий каждую строку файла

Я пытаюсь открыть файл и создать список с каждой строкой, считанной из файла.

   i=0
   List=[""]
   for Line in inFile:
      List[i]=Line.split(",")
      i+=1
   print List

Но этот пример кода дает мне ошибку из-за i+=1, говорящего, что index is out of range. Какая у меня проблема? Как я могу написать код, чтобы увеличить свой список с каждой новой линией в InFile?

4b9b3361

Ответ 1

Это намного проще, чем это:

List = open("filename.txt").readlines()

Это возвращает список каждой строки в файле.

Ответ 2

Я сделал это таким образом

lines_list = open('file.txt').read().splitlines()

Каждая строка содержит символы конца строки (\n\r); таким образом, символы удаляются.

Ответ 3

my_list = [line.split(',') for line in open("filename.txt")]

Ответ 4

Прочитайте PEP8. Вы покачиваетесь довольно далеко от конвенций python.

Если вы хотите, чтобы список списков каждой строки делился запятой, я бы сделал следующее:

l = []
for line in in_file:
    l.append(line.split(','))

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

l = []
for line in in_file:
    l.append(line.rstrip().split(','))

Ответ 5

Файл - это почти список строк. Вы можете тривиально использовать его в цикле для.

myFile= open( "SomeFile.txt", "r" )
for x in myFile:
    print x
myFile.close()

Или, если вам нужен фактический список строк, просто создайте список из файла.

myFile= open( "SomeFile.txt", "r" )
myLines = list( myFile )
myFile.close()
print len(myLines), myLines

Вы не можете сделать someList[i], чтобы поместить новый элемент в конец списка. Вы должны сделать someList.append(i).

Кроме того, никогда не начинайте простое имя переменной с заглавной буквы. List путает людей, которые знают Python.

Кроме того, никогда не используйте встроенное имя в качестве переменной. List - это существующий тип данных, и использование его в качестве переменной смущает людей, которые знают Python.

Ответ 6

f.readlines() возвращает список, содержащий каждую строку в качестве элемента в списке

если вы хотите, чтобы каждая строка была разделена ( "," ), вы можете использовать методы списка

[ list.split(",") for line in file ]

Ответ 7

Предполагая, что вы также хотите удалить пробелы в начале и в конце каждой строки, вы можете сопоставить функцию строки строки с списком, возвращаемым readlines:

map(str.strip, open('filename').readlines())

Ответ 8

Я не уверен в Python, но большинство языков имеют функцию push/append для массивов.