Phil
Phil

Reputation: 377

Python: File not formatting like it should

The could below doesnt write to the text file as it should:

import re

download_results = open('download_result.txt', 'w')
s = 'AAAAAAABBBBCDEEEEEFFFFFFFFFFFFFGGGGGGGGGGGG##GGGGGGHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJKKKKKKKKKKKKLLLLLLLLLLLLLLLLMMMMMMM&&MMMMMMMMNNNNNNNNNNNNOOOOOOOOOOOO'
s = re.sub(r'[^\w]','',s)
s = ''.join(s)
for i in range(0, len(s), 60):
    download_results.write('%s' % (s[i:i+60]))
download_results.write('\n\n')
download_results.close()

The output in the text file is:

AAAAAAABBBBCDEEEEEFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJKKKKKKKKKKKKLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMNNNNNNNNNNNNOOOOOOOOOOOO

But i would like the output to be:

AAAAAAABBBBCDEEEEEFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGHHHHHHHHHHH
HHHIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJKKKKKKKKKKKKLLLLLLLLLLLLLL
LLMMMMMMMMMMMMMMMNNNNNNNNNNNNOOOOOOOOOOOO

Where the script writes "S" in lines containing 60 characters.

Upvotes: 0

Views: 79

Answers (4)

Daniel Egeberg
Daniel Egeberg

Reputation: 8382

You aren't writing any newline characters to the file.

Upvotes: 1

Dan Breslau
Dan Breslau

Reputation: 11522

Change this:

download_results.write('%s' % (s[i:i+60]))

to this:

download_results.write('%s\n' % (s[i:i+60]))

Upvotes: 2

Eli Bendersky
Eli Bendersky

Reputation: 273416

Add a newline to the .write invocation. write doesn't add a newline itself (print does, which might have been what confused you)

Upvotes: 0

Amber
Amber

Reputation: 526573

Then append a newline in your write call within the loop - write() doesn't automatically add a newline, unlike print.

for i in range(0, len(s), 60):
    download_results.write('%s\n' % (s[i:i+60]))
download_results.write('\n')
download_results.close()

Upvotes: 1

Related Questions