Appending an asterisk to the end of each line

MRAB python at mrabarnett.plus.com
Tue Jul 5 20:05:12 EDT 2016


On 2016-07-06 00:45, Seymore4Head wrote:
> On Tue, 05 Jul 2016 19:29:21 -0400, Seymore4Head
> <Seymore4Head at Hotmail.invalid> wrote:
>
>>On Tue, 5 Jul 2016 19:15:23 -0400, Joel Goldstick
>><joel.goldstick at gmail.com> wrote:
>>
>>>On Tue, Jul 5, 2016 at 7:03 PM, MRAB <python at mrabarnett.plus.com> wrote:
>>>> On 2016-07-05 23:05, Seymore4Head wrote:
>>>>>
>>>>> import os
>>>>>
>>>>> f_in = open('win.txt', 'r')
>>>>> f_out = open('win_new.txt', 'w')
>>>>>
>>>>> for line in f_in.read().splitlines():
>>>>>     f_out.write(line + " *\n")
>>>>>
>>>>> f_in.close()
>>>>> f_out.close()
>>>>>
>>>>> os.rename('win.txt', 'win_old.txt')
>>>>> os.rename('win_new.txt', 'win.txt')
>>>>>
>>>>>
>>>>> I just tried to reuse this program that was posted several months ago.
>>>>> I am using a text flie that is about 200 lines long and have named it
>>>>> win.txt.  The file it creates when I run the program is win_new.txt
>>>>> but it's empty.
>>>>>
>>>> Although it creates a file called "win_new.txt", it then renames it to
>>>> "win.txt", so "win_new.txt" shouldn't exist.
>>>>
>>>> Of course, if there's already a file called "win_old.txt", then the first
>>>> rename will raise an exception, and you'll have "win_new.txt" and the
>>>> original "win.txt".
>>>>
>>>> --
>>>> https://mail.python.org/mailman/listinfo/python-list
>>>
>>>Why don't you comment out the renames, and see what happens?
>>
>>I really don't care if the filename gets renamed or not.  I commented
>>out the renames, but I still get a new file called win_new.txt and it
>>is empty.
>>
>>The original is unchanged.
>
> I just tried this on a 3 line text file and it works.
>
> I am looking through the text file and have found at least two
> suspicious characters.  One is a German letter and the other is a
> characters that has been replaced by a square symbol.
>
That suggests to me that it's an encoding problem (the traceback 
would've indicated that).

Specify an encoding when you open the files:

f_in = open('win.txt', 'r', encoding='utf-8')
f_out = open('win_new.txt', 'w', encoding='utf-8')

assuming that 'win.txt' is indeed encoded in UTF-8. (It might be 
something like ISO-8859-1 instead.)




More information about the Python-list mailing list