mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-10 05:47:09 +01:00
Adding missing close for open. If the "close()" call is missing after a "open(filename)" call, the filename isn't guaranteed to be closed before the interpreter exits. This is generally a bad practice as explained here: https://stackoverflow.com/questions/7395542/is-explicitly-closing-files-important Also replaced "fid=open(filename) fid.close()" statements for files with the safer "with open(filename) as fid:" blocks. See https://www.python.org/dev/peps/pep-0343/
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
"""Document class."""
|
|
|
|
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
|
|
|
|
import os
|
|
|
|
|
|
class Document:
|
|
"""Document class."""
|
|
|
|
def __init__(self, filename=None):
|
|
"""Create a Document instance."""
|
|
self.filename = filename
|
|
self.filepath = None
|
|
self.filedir = None
|
|
self.filebase = None
|
|
self.fileext = None
|
|
if self.filename:
|
|
self.filepath = os.path.realpath(self.filename)
|
|
self.filedir, self.filename = os.path.split(self.filepath)
|
|
self.filebase, self.fileext = os.path.splitext(self.filename)
|
|
|
|
def read(self):
|
|
"""Return contents of file."""
|
|
if self.filepath and os.path.exists(self.filepath):
|
|
with open(self.filepath, 'rb') as f:
|
|
try:
|
|
return f.read().decode('utf-8')
|
|
finally:
|
|
pass
|
|
else:
|
|
return ''
|
|
|
|
def write(self, text):
|
|
"""Write text to file."""
|
|
with open(self.filepath, 'wb') as f:
|
|
try:
|
|
# Convert from unicode to bytes
|
|
text = text.encode('utf-8')
|
|
f.write(text)
|
|
except AttributeError:
|
|
pass
|