user3256536
user3256536

Reputation: 197

Python: joining multiple lines into a single line/string and appending it to a list

Basically I have a text file, I am reading it line by line. I want to merge some lines together (a part of the text) in to a single string and add it as an element to a list.

These parts of the text that I want to combine start with the letters "gi" and end with ">". I can successfully isolate this part of the text but I am having trouble manipulating with it in any way, i would like it to be a single variable, acting like a individual entity. So far it is only adding single lines to the list.

def lines(File):
    dataFile = open(File)
    list =[]
    for letters in dataFile:
        start = letters.find("gi") + 2 
        end = letters.find(">", start)
        unit = letters[start:end]
        list.append(unit)
    return list

This is an example: https://www.dropbox.com/s/1cwv2spfcpp0q0s/pythonmafft.txt?dl=0

So every entry that is in the file I would like to manipulate as a single string and be able to append it to a list. Every entry is seperated by a few empty lines.

Upvotes: 0

Views: 3653

Answers (1)

Eithos
Eithos

Reputation: 2491

First off, don't use list as a variable name. list is a builtin and you override it each time you assign the same name elsewhere in your code. Try to use more descriptive names in general and you'll easily avoid this pitfall.

There is an easier way to do what you're asking, since '>gi' (in the example you gave) is placed together. You can simply use split and it'll give you the units (without '>gi').

def lines(File):
    dataFile = open(File)
    wordlist = dataFile.read().split('>gi')
    return wordlist

Upvotes: 1

Related Questions