osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How to write raw strings to Python


Binary Boy writes:

> On Wed, 05 Jul 2017 20:37:38 +0300, Jussi Piitulainen wrote:
>> Sam Chats writes:
>> 
>> > On Wednesday, July 5, 2017 at 9:09:18 PM UTC+5:30, Grant Edwards wrote:
>> >> On 2017-07-05, Sam Chats <blahBlah at blah.org> wrote:
>> >> 
>> >> > I want to write, say, 'hello\tworld' as-is to a file, but doing
>> >> > f.write('hello\tworld') makes the file look like:
>> >> [...]
>> >> > How can I fix this?
>> >> 
>> >> That depends on what you mean by "as-is".
>> >> 
>> >> Seriously.
>> >> 
>> >> Do you want the single quotes in the file?  Do you want the backslash
>> >> and 't' character in the file?
>> >> 
>> >> When you post a question like this it helps immensely to provide an
>> >> example of the output you desire.
>> >
>> > I would add to add the following couple lines to a file:
>> >
>> > for i in range(5):
>> >     print('Hello\tWorld')
>> >
>> > Consider the leading whitespace to be a tab.
>> 
>> import sys
>> 
>> lines = r'''
>> for line in range(5):
>>     print('hello\tworld')
>> '''
>> 
>> print(lines.strip())
>> 
>> sys.stdout.write(lines.strip())
>> sys.stdout.write('\n')
>
> Thanks! But will this work if I already have a string through a string
> variable, rather than using it directly linke you did (by declaring
> the lines variable)?  And, will this work while writing to files?

Yes, it will work the same. Writing does not interpret the contents of
the string. Try it - replace sys.stdout above with your file object.

If you see a different result in your actual program, your string may be
different than you think. Investigate that.