2016-02-03 5 views
0

input.txt -Как читать и писать .txt-файл по строкам в python?

I am Hungry 
call the shopping mall 
connected drive 

Я хочу, чтобы прочитать input.txt построчно и отправить его в качестве запроса на сервер, а затем сохранить ответ соответственно. как читать и писать данные по строкам?

мой код ниже работает только для одного входа в input.txt (например: я голоден). Можете ли вы, пожалуйста, помочь мне, как это сделать для множественного ввода?

Запрос:

fileInput = os.path.join(scriptPath, "input.txt") 
if not os.path.exists(fileInput): 
    print "error message" 
    Error_Status = 1 
    sys.exit(Error_Status) 
else: 
    content = open(fileInput, "r").read() 
    if len(content): 
     TEXT_TO_READ["tts_input"] = content 
     TEXT_TO_READ = json.dumps(TEXT_TO_READ) 
    else: 
     print "error message 2" 

request = Request() 

Ответ:

res = h.getresponse() 
data = """MIME-Version: 1.0 
Content-Type: multipart/mixed; boundary=--Nuance_NMSP_vutc5w1XobDdefsYG3wq 
""" + res.read() 

msg = email.message_from_string(data) 

for index, part in enumerate(msg.walk(), start=1): 
    content_type = part.get_content_type() 
    payload = part.get_payload() 

    if content_type == "audio/x-wav" and len(payload): 
     with open('Sound_File.pcm'.format(index), 'wb') as f_pcm: 
      f_pcm.write(payload) 
    elif content_type == "application/json": 
     with open('TTS_Response.txt'.format(index), 'w') as f_json: 
      f_json.write(payload) 
+0

не могли бы вы рассказать мне, как? – sam

ответ

-1

В принципе вы можете просто:

with open('filename') as f: 
    for line in f.readlines(): 
     print line 

Выход будет:

Я Голодные

вызова торгового центр

подключен привод

Теперь для объяснения по поводу «с» заявлением вы можете прочитать здесь: http://effbot.org/zone/python-with-statement.htm

+1

с использованием 'readlines()' неэффективен и может привести к ошибкам памяти. Просто перебирайте файл: https://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects –

1

Чтобы сохранить это глупо просто, давайте реализовать широкое описание что должно произойти: «Я хочу прочитать файл input.txt по очереди и отправить это как запрос на сервер, а затем сохранить ответ соответственно. «»:

for line in readLineByLine('input.txt'): 
    sendAsRequest(line) 
    saveResponse() 

Из того, что я могу собрать из вашего вопроса, у вас уже есть в основном функции sendAsRequest(line) и saveResponse() (возможно, под другим названием), но вы пропустите функцию readLineByLine('input.txt'). Вот он:

def readLineByLine(filename): 
    with open(filename, 'r') as f: #Use with statement to correctly close the file when you read all the lines. 
     for line in f: # Use implicit iterator over filehandler to minimize memory used 
      yield line.strip('\n') #Use generator, to minimize memory used, removing trailing carriage return as it is not part of the command. 
+0

fileInput как input.txt в соответствии с моим кодом, но как принять ваш ответ в моем код? – sam

+0

не могли бы вы рассказать мне, как? – sam

+0

У вас есть проблемы для изоляции частей вашего кода и реорганизации их как функции? Или у вас есть проблемы для написания кода, который использует функции с синтаксисом 'def functionName (args)? – DainDwarf

 Смежные вопросы

  • Нет связанных вопросов^_^