ExtronLib-CDS/system/File.py

174 lines
4.9 KiB
Python
Raw Normal View History

from typing import Union
class File():
""" Access to files located in user area. These files are stored in a location that can be accessed using 3rd party SFTP clients.
Note: File class accesses user area with admin privileges.
Arguments:
- Filename (string) - Name of file to open
- mode (string) - the mode in which the files is opened.
- encoding (string) - the name of the encoding used to decode/encode the file.
- newline (string) - controls how universal newlines mode works
Note:
- mode, encoding, and newline have the same meanings as those passed to the built-in function open(). See the documentation at python.org.
- ChangeDir(), DeleteDir(), DeleteFile(), Exists(), GetCurrentDir(), ListDir(), MakeDir(), and RenameFile() are all classmethods.
Note: For restricted file access, substitute File with RFile in the examples above and below.
Parameters:
- Filename - Returns (string) - name of file
"""
Filename: str = ''
mode: str = ''
encoding: str = ''
newline: str = ''
def __init__(self, Filename: str, mode: str='r', encoding: str=None, newline: str=None) -> None:
""" File class constructor.
Arguments:
- Filename (string) - Name of file to open
- mode (string) - the mode in which the files is opened.
- encoding (string) - the name of the encoding used to decode/encode the file.
- newline (string) - controls how universal newlines mode works
"""
...
def ChangeDir(self, path: str) -> None:
""" Change the current working directory to path
Arguments:
- path (string) - path to directory
"""
...
def DeleteDir(self, path: str) -> None:
""" Remove a directory
Arguments:
- path (string) - path to directory
"""
...
def DeleteFile(self, filename: str) -> None:
""" Delete a file
Arguments:
- filename (string) - the name of the file to be deleted (path to file)
"""
...
def Exists(self, path: str) -> bool:
""" Return True if path exists
Arguments:
- path (string) - path to directory
Returns
- true if exists else false (bool)
"""
...
def GetCurrentDir(self) -> str:
""" Get the current path.
Returns
- the current working directory (string)
"""
...
def ListDir(self, path: str=None) -> str:
""" List directory contents
Arguments:
- path (string) - if provided, path to directory to list, else list current directory
Returns
- directory listing (string)
"""
...
def MakeDir(self, path: str) -> None:
""" Make a new directory
Arguments:
- path (string) - path to directory
"""
...
def RenameFile(self, oldname: str, newname: str) -> None:
""" Rename a file from oldname to newname
Arguments:
- oldname (string) - the original filename
- newname (string) - the filename to rename to
"""
...
def close(self) -> None:
""" Close an already opened file """
...
def read(self, size:int=-1) -> bytes:
""" Read data from opened file
Arguments:
- size (int) - max number of char/bytes to read
Returns
- data (bytes)
"""
...
def readline(self) -> bytes:
""" Read from opened file until newline or EOF occurs
Returns
- data (bytes)
"""
...
def seek(self, offset: int, whence: int=0) -> None:
""" Change the stream position
Arguments:
- offset (int) - offset from the start of the file
- (optional) whence (int) -
- 0 = absolute file positioning
- 1 = seek relative to the current position
- 2 = seek relative to the files end.
Note: Files opened in text mode (i.e. not using 'b'), only seeks relative to the beginning of the file are allowed the exception being a seek to the very file end with seek(0,2).
"""
...
def tell(self) -> int:
""" Returns the current cursor position
Returns
- the current cursor position (int)
"""
...
def write(self, data: Union[str, bytes]) -> None:
""" Write string or bytes to file
Arguments:
- data (string, bytes) - data to be written to file
"""
...
def writelines(self, seq: list[str]) -> None:
""" Write iterable object such as a list of strings
Arguments:
- seq (e.g. list of strings) - iterable sequence
Raises:
- FileNotOpenError
"""
...