178 lines
4.9 KiB
Python
178 lines
4.9 KiB
Python
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 file’s 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
|
||
"""
|
||
...
|