Невозможно записать в текстовый файл - PullRequest
2 голосов
/ 01 июня 2010

Я запускаю несколько тестов и мне нужно записать в файл. Когда я запускаю тест, open = (file, 'r+') не записывает в файл. Скрипт теста ниже:

class GetDetailsIP(TestGet):

    def runTest(self):

        self.category = ['PTZ']

        try:
            # This run's and return's a value
            result = self.client.service.Get(self.category) 

            mylogfile = open("test.txt", "r+")
            print >>mylogfile, result
            result = ("".join(mylogfile.readlines()[2]))
            result = str(result.split(':')[1].lstrip("//").split("/")[0])
            mylogfile.close()
        except suds.WebFault, e:                        
            assert False
        except Exception, e:
            pass
        finally:
            if 'result' in locals():
                self.assertEquals(result, self.camera_ip)
            else:
                assert False

Когда этот тестовый прогон, в текстовый файл не было введено никакого значения, а в результате переменной возвращается значение.

Я тоже попробовал mylogfile.write(result). Если файл не существует - это претензия, файл не существует и не создает его.

Может ли это быть проблемой с разрешениями, когда python не разрешено создавать файл? Я убедился, что все остальные операции чтения этого файла закрыты, поэтому файл не должен быть заблокирован.

Может кто-нибудь предложить какое-либо предложение, почему это происходит?

Спасибо

1 Ответ

5 голосов
/ 01 июня 2010

После записи ваш курсор находится в конце файла. Если вы хотите прочитать текст, вам нужно перейти к началу:

>>> mylogfile = open("test10.txt", "w+")
>>> print >> mylogfile, 'hola'
>>> mylogfile.flush()        #just in case
>>> print mylogfile.read()
                             #nothing because I'am at the end of the file
>>> mylogfile.seek(0)
>>> print mylogfile.read()
hola

Кроме того, это также работает, если вы закрываете файл перед чтением (но, возможно, это не самый эффективный метод для вашего случая).

>>> mylogfile = open("test.txt", "w")
>>> print >> mylogfile, 'hola' 
>>> mylogfile.close()
>>> mylogfile = open("test.txt", "r")
>>> print mylogfile.read()
hola
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...