Записывать данные с новой строки в файл свойств во время выполнения?

#python #python-3.x

#python #python-3.x

Вопрос:

Я использую версию Python3.6 и развернул этот проект на сервере Linux, у меня есть одно требование, когда я хочу написать key=value во время выполнения в файле свойств, для этого 1-го я написал приведенный ниже код, но он не работает на моей стороне, поэтому, пожалуйста, посоветуйте мне, если что-то естьпомимо этого.

 def writePropFile(self, propFileName, data):
    try:
        print("propFileName : ",propFileName)
        writeObj = open(propFileName, "a")
        writeObj.write(data "n")
    except TypeError as error:
        print(error)
    finally:
        print("Closing file obj")
        writeObj.close()
 

В автономной программе все работает нормально.

Комментарии:

1. Что вы получаете в результате во время выполнения? Есть ли ошибка? Вы просто не видите никаких выходных данных? если это так, вызывается ли функция вообще?

2. Пожалуйста, опишите, что именно ваш код делает неправильно. Включите полную обратную трассировку, если вы получаете исключение, или описание выходных данных, если это не то, что вы ожидаете.

3. Нет, я не получаю никаких ошибок, просто мой вывод отображается только в одной строке.

4. Я не могу воспроизвести вашу ошибку, хотя я признаю, что вы говорите, что она отлично работает в автономной функции. Можете ли вы предоставить больше контекста для функции? То, что у вас есть, должно работать нормально, даже если оно немного подробное по сравнению с with open(propFileName, 'a') as f: f.write(data "n" ) . Возможно, вы можете распечатать propFileName и data для данного запуска и вставить результаты.

5. Мой код: def writePropFile(self, data): попробуйте: writeObj = open(«filename.properties», «a») writeObj.write(данные «n»), за исключением ошибки ввода как ошибки: вывод (ошибка) функции выполнения по: случай 1 — rw.writePropFile(«тест=test») случай 2 — rw.writePropFile(«test1=test1») случай 3 — rw.writePropFile(«test3= test3») Он выдает следующий вывод: test=test test1=test1 test2= test2, но на машине Linux он выдает следующий вывод — test=testtest1=test1test2=test2

Ответ №1:

Вы внесли следующие изменения, и теперь все работает нормально.

def writePropFile(self, propFileName, data): попробуйте: print(«propFileName: «, propFileName) writeObj = open(propFileName, «a») writeObj.write(«r n» данные) за исключением ошибки типа как ошибка: печать (ошибка) наконец: печать («Закрытие файлаobj») writeObj.close()