Reputation: 777
I have this piece of code that generate the following output:
result = []
with open('fileA.txt') as f:
for line in f:
if line.startswith('chr'):
label = line.strip()
elif line[0] == ' ':
# short sequence
length = len(line.strip())
# find the index of the beginning of the short sequence
for i, c in enumerate(line):
if c.isalpha():
short_index = i
break
elif line[0].isdigit():
# long sequence
n = line.split(' ')[0]
# find the index of the beginning of the long sequence
for i, c in enumerate(line):
if c.isalpha():
long_index = i
break
start = int(n) + short_index - long_index
start -= 1
end = start + length
result.append('{} {} {}'.format(label, start, end))
offset, n, start, length = 0, 0, 0, 0
Output
['chr1:152806601-152807450 453 474', 'chr1:152806601-152807450 757 778', 'chr10:125364276-125364825 318 339', 'chr10:125364276-125364825 378 399']
How to change my output to the following format:
chr1:152806601-152807450 453 474
chr1:152806601-152807450 757 778
chr10:125364276-125364825 318 339
chr10:125364276-125364825 378 399
Can anyone help me?
Upvotes: 1
Views: 6698
Reputation: 22964
If you have a list of values, and you want to print the elements each on new line then you may use:
for i in results:
print i
Or alternatively you may also use .join()
method on a string and join all the elements of the list with "\n"
in this case.
print "\n".join(results)
Upvotes: 7