2013-11-09 4 views
0

Итак, я написал этот код, и он отлично работает на Linux.Печать в файл работает в Linux, но не в Windows?

  1. Чтение данных из файла
  2. делать то, что мой код, как предполагается сделать
  3. Написать решения о новом файле.

Вот часть кода, который должен сделать это:

outFile = open("input.txt", "w") 

for item in oplist: 
    outFile.write(item + "\n") 

outFile.close 

Он отлично работает на Linux, но на окнах лишь создает новый выходной файл, но ничего не писать в него ,

Пожалуйста, помогите!

ответ

2

Вы не являетесь закрытием файла; вы просто ссылаетесь на метод close. Позвоните по следующему адресу:

outFile.close() 

Без закрытия файловых буферов не будет сброшена до выхода Python.

Лучший способ справиться с закрытием файла, чтобы использовать with заявление:

with open("input.txt", "w") as outFile: 
    for item in oplist: 
     outFile.write(item + "\n") 

Теперь файл будет автоматически закрыт.

+0

Хорошая добыча! Я полностью замалчивал недостающий '()', когда я читал сообщение. Хотя, не будет ли сброс буфера при завершении скрипта? – inspectorG4dget

+0

Ох спасибо за ответ. Обычно это небольшие ошибки, которые убивают меня во время программирования. Забыл скобки * _ * – kiasy

+1

@ inspectorG4dget: да, это так, но я предполагаю, что OP сделал * не * закрыл файл. Там написано, что в противном случае выглядит отлично, а в Windows все еще открытый файл ведет себя по-другому. –

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