Class representing a single file.
This class implements much more complex logic than the default python file objects. E.g. on writing we first write to a temporary files, then flush and sync and finally replace the file we intended to write with the temporary file. This makes it much more difficult to loose file contents when something goes wrong during the writing.
Also it implements logic to check the modification time before writing to prevent overwriting a file that was changed on disk in between read and write operations. If this mtime check fails MD5 sums are used to verify before raising an exception (because some share drives do not maintain mtime very precisely). This logic is not atomic, so your mileage may vary.
Method | __eq__ |
Undocumented |
Method | __init__ |
Constructor |
Method | check_has_changed_on_disk |
Returns True when this file has changed on disk |
Method | cleanup |
Remove this file and cleanup any empty parent folder. Convenience method calling File.remove() and Dir.cleanup() . |
Method | compare |
No summary |
Method | copyto |
No summary |
Method | exists |
No summary |
Method | get_endofline |
Get the end-of-line character(s) used for writing this file. @returns: the end-of-line character(s) |
Method | get_mimetype |
No summary |
Method | isimage |
No summary |
Method | raw |
No summary |
Method | read |
No summary |
Method | readlines |
Get the file contents as a list of lines. Takes case of decoding UTF-8 and fixes line endings. |
Method | remove |
Remove (delete) this file and cleanup any related temporary files we created. This action can not be un-done. Ignores silently if the file did not exist in the first place. |
Method | touch |
No summary |
Method | write |
No summary |
Method | writelines |
No summary |
Instance Variable | checkoverwrite |
Undocumented |
Instance Variable | endofline |
Undocumented |
Method | _assertoverwrite |
Undocumented |
Method | _checkoverwrite |
Undocumented |
Method | _read |
Undocumented |
Method | _write_check |
Undocumented |
Instance Variable | _md5 |
Undocumented |
Instance Variable | _mtime |
Undocumented |
Inherited from UnixPath
:
Class Method | new_from_zim_config |
Returns a new object based on the string representation for that path |
Method | __add__ |
Concatenates paths, only creates objects of the same class. See Dir.file() and Dir.subdir() instead to create other objects. |
Method | __iter__ |
Undocumented |
Method | __ne__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | commonparent |
No summary |
Method | ctime |
Get the creation time of the file path. @returns: the mtime timestamp |
Method | ischild |
Check if this path is a child path of a folder @returns: True if this path is a child path of parent |
Method | isdir |
Check if this path is a folder or not. Used to detect if e.g. a File object should have really been a Dir object. @returns: True when this path is a folder |
Method | isequal |
No summary |
Method | iswritable |
Check if a file or folder is writable. Uses permissions of parent folder if the file or folder does not (yet) exist. @returns: True if the file or folder is writable |
Method | monitor |
Creates a FSObjectMonitor for this path |
Method | mtime |
Get the modification time of the file path. @returns: the mtime timestamp |
Method | relpath |
No summary |
Method | rename |
No summary |
Method | serialize_zim_config |
Returns the file path as string for serializing the object |
Method | size |
Get file size in bytes See format_file_size() to get a human readable label @returns: file size in bytes |
Method | split |
No summary |
Instance Variable | path |
the absolute file path as string file system encoding (should only be used by low-level functions) |
Property | basename |
Basename property |
Property | dir |
Returns a Dir object for the parent dir |
Property | dirname |
Dirname property |
Property | uri |
File uri property |
Property | user_path |
User_path property |
Static Method | _parse_uri |
Undocumented |
Method | _set_path |
Undocumented |
Instance Variable | _serialized |
Undocumented |
zim.fs.UnixPath.__init__
zim.fs.TmpFile
Parameters | |
path | an absolute file path, file URL, FilePath object or a list of path elements. When a list is given, the first element is allowed to be an absolute path, URL or FilePath object as well. |
checkoverwrite | when True this object checks the modification time before writing to prevent overwriting a file that was changed on disk in between read and write operations. |
endofline | the line end style used when writing, can be one of "unix" ('\n') or "dos" ('\r\n'). Whan None the local default is used. |
File.remove()
and Dir.cleanup()
.zim.fs.UnixPath.exists
Returns | |
True if the file or folder exists | |
Unknown Field: implementation | |
must be implemented by sub classes in order that they enforce the type of the resource as well |
Returns | |
the mimetype as a string, e.g. "text/plain" |
Returns | |
True when this is an image file |
Returns | |
file content as string |
Returns | |
the content as (unicode) string. | |
Raises | |
FileNotFoundError | when the file does not exist. |
Returns | |
the content as a list of lines. | |
Raises | |
FileNotFoundError | when the file does not exist. |
Parameters | |
text | new content as (unicode) string |
Unknown Field: emits | |
path-created if the file did not yet exist |
write()
but input is a list instead of a string.Parameters | |
lines | new content as list of lines |
Unknown Field: emits | |
path-created if the file did not yet exist |