I\'m trying to open a file and create a list with each line read from the file.
i=0
List=[\"\"]
for Line in inFile:
List[i]=Line.split(\",\")
A file is almost a list of lines. You can trivially use it in a for loop.
myFile= open( "SomeFile.txt", "r" )
for x in myFile:
print x
myFile.close()
Or, if you want an actual list of lines, simply create a list from the file.
myFile= open( "SomeFile.txt", "r" )
myLines = list( myFile )
myFile.close()
print len(myLines), myLines
You can't do someList[i]
to put a new item at the end of a list. You must do someList.append(i)
.
Also, never start a simple variable name with an uppercase letter. List
confuses folks who know Python.
Also, never use a built-in name as a variable. list
is an existing data type, and using it as a variable confuses folks who know Python.
f.readlines() returns a list that contains each line as an item in the list
if you want eachline to be split(",") you can use list comprehensions
[ list.split(",") for line in file ]
I am not sure about Python but most languages have push/append function for arrays.
I did it this way
lines_list = open('file.txt').read().splitlines()
Every line comes with its end of line characters (\n\r); this way the characters are removed.
Please read PEP8. You're swaying pretty far from python conventions.
If you want a list of lists of each line split by comma, I'd do this:
l = []
for line in in_file:
l.append(line.split(','))
You'll get a newline on each record. If you don't want that:
l = []
for line in in_file:
l.append(line.rstrip().split(','))
Assuming you also want to strip whitespace at beginning and end of each line, you can map the string strip function to the list returned by readlines:
map(str.strip, open('filename').readlines())