I am experimenting a strange behaviour which I don't know how to solve. I will explain the scenario:
- From a Python script I'm getting a json from a simple application hosted on parse.
- Once I get the text, I get a sentence from it and save it to a local "txt" file saving it as iso-8859-15.
- Finally I send it to a text to speech processor, which expects receiving it on ISO-8859-15
The weird thing is that once the python script runs, if I run
file my_file.txt
The output is:
my_file.txt: ASCII text, with no line terminators
But if I open my_file.txt
with vim, then remove the last "dot" of the sentence, write it again, and save the file: if I do again:
file my_file.txt
now the output is:
my_file.txt: ASCII text
Which solves some problems when processing the voice synthesizer. So, how can I force this behaviour automatically without doing the vim stuff? I have also done many tries with iconv
with no success.
Any help would be much appreciated
Edit:
i@raspberrypi ~/main $ hexdump -C my_file.txt
00000000 73 61 6d 70 6c 65 20 61 6e 73 77 65 72 2e 2e |sample answer..|
0000000f
pi@raspberrypi ~/main $ file my_file.txt
my_file.txt: ASCII text, with no line terminators
pi@raspberrypi ~/main $ vim my_file.txt
pi@raspberrypi ~/main $ file my_file.txt
my_file.txt: ASCII text
pi@raspberrypi ~/main $ hexdump -C my_file.txt
00000000 73 61 6d 70 6c 65 20 61 6e 73 77 65 72 2e 2e 0a |sample answer...|
00000010
Python code:
import json,httplib
from random import randint
import codecs
connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect()
connection.request('GET', '/1/classes/XXXX', '', {
"X-Parse-Application-Id": "xxxx",
"X-Parse-REST-API-Key": "xxxx"
})
result = json.loads(connection.getresponse().read())
pos = randint(0,len(result['results'])-1)
sentence = result['results'][pos]['sentence'].encode('iso-8859-15')
response = result['results'][pos]['response'].encode('iso-8859-15')
text_file = codecs.open("sentence.txt", "w","ISO-8859-15")
text_file.write("%s" % sentence)
text_file.close()
text_file = open("response.txt","w")
text_file.write("%s" % response)
text_file.close()
hexdump -C
. When typing in vim, lines always seem to end with0x0a
, even though you cannot move the cursor to the next empty line. So I guess vim is indeed adding it when you remove the dot, or make any edit.