write Python string object to file

前端 未结 2 535
遇见更好的自我
遇见更好的自我 2021-01-28 16:33

I have this block of code that reliably creates a string object. I need to write that object to a file. I can print the contents of \'data\' but I can\'t figure out how to write

相关标签:
2条回答
  • 2021-01-28 16:49
    with open (template_file, "r") as a_string:
       data=a_string.read().replace('{SERVER_NAME}', server_name).replace('{BRAND}', brand).replace('{CONTENT_PATH}', content_path).replace('{DAMPATH}', dampath).replace('{ENV}', env).replace('{CACHE_DOCROOT}', cache_docroot).replace('{SLD}', sld)
    
    filename = "{NNN}_{BRAND}_farm.any".format(BRAND=brand, NNN=nnn)
    with open(filename, "w") as outstream:
        outstream.write(data)
    
    0 讨论(0)
  • 2021-01-28 16:50

    I can print the contents of 'data' but I can't figure out how to write it to a file as output

    Use with open with mode 'w' and write instead of read:

    with open(template_file, "w") as a_file:
       a_file.write(data)
    

    Also why does "with open" automatically close a_string?

    open returns a File object, which implemented both __enter__ and __exit__ methods. When you enter the with block the __enter__ method is called (which opens the file) and when the with block is exited the __exit__ method is called (which closes the file).

    You can implement the same behavior yourself:

    class MyClass:
        def __enter__(self):
            print 'enter'
            return self
    
        def __exit__(self, type, value, traceback):
            print 'exit'
    
        def a(self):
            print 'a'
    
    with MyClass() as my_class_obj:
         my_class_obj.a()
    

    The output of the above code will be:

    'enter'
    'a'
    'exit'
    
    0 讨论(0)
提交回复
热议问题