Create a List that contain each Line of a File

前端 未结 8 1468
无人及你
无人及你 2020-12-23 16:52

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(\",\")
         


        
相关标签:
8条回答
  • 2020-12-23 17:09

    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.

    0 讨论(0)
  • 2020-12-23 17:15

    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 ]
    
    0 讨论(0)
  • 2020-12-23 17:15

    I am not sure about Python but most languages have push/append function for arrays.

    0 讨论(0)
  • 2020-12-23 17:18

    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.

    0 讨论(0)
  • 2020-12-23 17:27

    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(','))
    
    0 讨论(0)
  • 2020-12-23 17:29

    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())
    
    0 讨论(0)
提交回复
热议问题