English 中文(简体)
Basic Python loop question - problem reading a list from a text file
原标题:
  • 时间:2009-11-09 20:16:20
  •  标签:
  • python
  • loops

I m trying to read a list of items from a text file and format with square brackets and separators like this: [ item1 , item2 , .... last_item ] but I m having trouble with the beginning and end item for which I always get: ..., last_item , ], so I do not want the last , to be there.

In python I ve write:

out_list = "[ "
for line in open(file_in):  
    out_list += line                #append the item to the list
    out_accession_list += " , "     #add the separator
out_accession_list += "]"           #add the final closed bracket
return out_list                        

I realize that this is a basic loop question, but I can t think of the best way to do it. Should I use a try final statement, should it be a while loop, or should I count the number of lines first and then use a loop with a range?

Help much appreciated.

Thanks, John

最佳回答

Read in all your lines and use the string.join() method to join them together.

lines = open(file_in).readlines()

out_list = "[ " + " , ".join(lines) + " ]"

Additionally, join() can take any sequence, so reading the lines isn t necessary. The above code can be simplified as:

out_list = "[ " + " , ".join(open(file_in)) + " ]"
问题回答
out_list = []
for line in open(file_in):
    out_list.append(" " + line + " ")
return "[" + ",".join(out_list) + "]"

You "right strip" for "," the result before adding the last "]".

e.g. use the string.rstrip(",")

Or

result = "[ "
for line in open(file_in):
    if len(result) > 0:
        result += " , " 
    result += line
result += " ]"
return result
def do(filepath):
    out = []
    for line in open(filepath,  r ):
        out.append(" " + line.strip() + " ")
    return out.__str__()

Your desired output format is exactly Python s standard printable representation of a list. So an easy solution is to read the file, create a list with each line as a string element (stripping the end-of-line of each), and call the Python built-in function repr to produce a string representation of the list:

>>> repr([line.rstrip() for line in open(file_in)])
"[ item1 ,  item2 ,  item3 ]"




相关问题
Can Django models use MySQL functions?

Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...

An enterprise scheduler for python (like quartz)

I am looking for an enterprise tasks scheduler for python, like quartz is for Java. Requirements: Persistent: if the process restarts or the machine restarts, then all the jobs must stay there and ...

How to remove unique, then duplicate dictionaries in a list?

Given the following list that contains some duplicate and some unique dictionaries, what is the best method to remove unique dictionaries first, then reduce the duplicate dictionaries to single ...

What is suggested seed value to use with random.seed()?

Simple enough question: I m using python random module to generate random integers. I want to know what is the suggested value to use with the random.seed() function? Currently I am letting this ...

How can I make the PyDev editor selectively ignore errors?

I m using PyDev under Eclipse to write some Jython code. I ve got numerous instances where I need to do something like this: import com.work.project.component.client.Interface.ISubInterface as ...

How do I profile `paster serve` s startup time?

Python s paster serve app.ini is taking longer than I would like to be ready for the first request. I know how to profile requests with middleware, but how do I profile the initialization time? I ...

Pragmatically adding give-aways/freebies to an online store

Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...

Converting Dictionary to List? [duplicate]

I m trying to convert a Python dictionary into a Python list, in order to perform some calculations. #My dictionary dict = {} dict[ Capital ]="London" dict[ Food ]="Fish&Chips" dict[ 2012 ]="...

热门标签