Ответ 1
Это намного проще, чем это:
List = open("filename.txt").readlines()
Это возвращает список каждой строки в файле.
Я пытаюсь открыть файл и создать список с каждой строкой, считанной из файла.
i=0
List=[""]
for Line in inFile:
List[i]=Line.split(",")
i+=1
print List
Но этот пример кода дает мне ошибку из-за i+=1
, говорящего, что index is out of range
.
Какая у меня проблема? Как я могу написать код, чтобы увеличить свой список с каждой новой линией в InFile?
Это намного проще, чем это:
List = open("filename.txt").readlines()
Это возвращает список каждой строки в файле.
Я сделал это таким образом
lines_list = open('file.txt').read().splitlines()
Каждая строка содержит символы конца строки (\n\r); таким образом, символы удаляются.
my_list = [line.split(',') for line in open("filename.txt")]
Прочитайте PEP8. Вы покачиваетесь довольно далеко от конвенций python.
Если вы хотите, чтобы список списков каждой строки делился запятой, я бы сделал следующее:
l = []
for line in in_file:
l.append(line.split(','))
Вы получите новую строку для каждой записи. Если вы этого не хотите:
l = []
for line in in_file:
l.append(line.rstrip().split(','))
Файл - это почти список строк. Вы можете тривиально использовать его в цикле для.
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.
f.readlines() возвращает список, содержащий каждую строку в качестве элемента в списке
если вы хотите, чтобы каждая строка была разделена ( "," ), вы можете использовать методы списка
[ list.split(",") for line in file ]
Предполагая, что вы также хотите удалить пробелы в начале и в конце каждой строки, вы можете сопоставить функцию строки строки с списком, возвращаемым readlines:
map(str.strip, open('filename').readlines())
Я не уверен в Python, но большинство языков имеют функцию push/append для массивов.