A Package designed for a better data management when it comes to both files and directories.
Project description
The BDM ( Better Data Management ) Library is a Python Library designed to provide a better data management when it comes to files and directories.
Library Usage
The library includes two new objects; The Bdir and the Bfile, referring to Better Directory and Better File, respectively.
Better Directories
from betterdatamanagement.bdir import Bdir
# Using a better directory is simple.
b = Bdir("path_to_directory") # Initializes
# Object Attributes
b.path # path_to_directory (C://Path//to//dir//MyDir)
b.dirname # MyDir
b.contents # Returns a JSON Serializable structure of the directory tree
# Deleting the directory
b.remove() # This not only deletes the directory and all its contents but also turns the class useless. All the attributes are set to None from then on.
# Renaming a directory
b.rename('ILikeThisDir') # C://Path//to//dir//MyDir -> C://Path//to//dir//ILikeThisDir
# All the attributes are updates accordingly
# Finding a specific item inside a directory
# There is an "exact" parameter that makes it match the name you put in exactly. If set to False, it'll perform an "if key in filename" operation.
b.find('LovePoem.txt') # This will only return the path of the first match.
# Finding more than one item inside a directory
# There is an "exact" parameter that makes it match the name you put in exactly. If set to False, it'll perform an "if key in filename" operation.
b.find_all('Poem.txt') # Returns a list of all the paths of the matched items.
# Moving the directory
b.move_to("new_path") # Moves the directory physically to a new location and updates all the attributes accordingly
# Copying the directory to a new location
b.copy_to("new_path") # Copies the directory to a new location.
# Checks if the directory already exists there, and if so adds a serial to the copy
# Ex.: MyPoems-1, MyPoems-2 and so on
Bdir Contents Example
# Raw_Response.py
>>> b.contents
{'MyPoems': {'*path': 'C:\\Users\\Alex\\Desktop\\MyPoems', 'FriendlyPoems': {'*path': 'C:\\Users\\Alex\\Desktop\\MyPoems\\FriendlyPoems', 'Poem1.txt': 'C:\\Users\\Alex\\Desktop\\MyPoems\\FriendlyPoems\\Poem1.txt', 'Poem2.txt': 'C:\\Users\\Alex\\Desktop\\MyPoems\\FriendlyPoems\\Poem2.txt'}, 'LovePoems': {'*path': 'C:\\Users\\Alex\\Desktop\\MyPoems\\LovePoems', 'Poem1.txt': 'C:\\Users\\Alex\\Desktop\\MyPoems\\LovePoems\\Poem1.txt', 'Poem2.txt': 'C:\\Users\\Alex\\Desktop\\MyPoems\\LovePoems\\Poem2.txt', 'Poem3.txt': 'C:\\Users\\Alex\\Desktop\\MyPoems\\LovePoems\\Poem3.txt'}, 'No i am not a poet.txt': 'C:\\Users\\Alex\\Desktop\\MyPoems\\No i am not a poet.txt'}
// ContentsExample.json - Serialized JSON with (indent=4)
{
"MyPoems": {
"*path": "C:\\Users\\Alex\\Desktop\\MyPoems", //*path is the directory path
"FriendlyPoems": {
"*path": "C:\\Users\\Alex\\Desktop\\MyPoems\\FriendlyPoems",
"Poem1.txt": "C:\\Users\\Alex\\Desktop\\MyPoems\\FriendlyPoems\\Poem1.txt",
"Poem2.txt": "C:\\Users\\Alex\\Desktop\\MyPoems\\FriendlyPoems\\Poem2.txt"
},
"LovePoems": {
"*path": "C:\\Users\\Alex\\Desktop\\MyPoems\\LovePoems",
"Poem1.txt": "C:\\Users\\Alex\\Desktop\\MyPoems\\LovePoems\\Poem1.txt",
"Poem2.txt": "C:\\Users\\Alex\\Desktop\\MyPoems\\LovePoems\\Poem2.txt",
"Poem3.txt": "C:\\Users\\Alex\\Desktop\\MyPoems\\LovePoems\\Poem3.txt"
},
"No i am not a poet.txt": "C:\\Users\\Alex\\Desktop\\MyPoems\\No i am not a poet.txt"
}
}
Better Files
from betterdatamanagement.bfile import Bfile
# Using a better file is simple
b = Bfile("path_to_file")
# Objects Attributes
b.path # filepath (C://path//to//file//MyFile.txt)
b.filename # MyFile
b.binary # Boolean - Returns True if file is binary and False if not.
b.extension # .txt
# Deleting the file
b.remove()
# Renaming the file
b.rename("Buttercup Lyrics.txt") # C://path//to//file//MyFile.txt -> C://path//to//file//Buttercup Lyrics.txt
# All the attributes are updated accordingly
# Moving the file
b.move_to("new_path") # Moves the file to the new path and updates all the attributes accordingly
# Copying the file to a new location
b.copy_to("new_path") # Copies the file to a new location.
# Checks if the file already exists there, and if so adds a serial to the copy
# Ex.: Poem-1, Poem-2 and so on.
Quick Data Editing
It's recommended to use normal file editing if you wish to be more specific with the content. These methods are to be used for a quick edit.
# Writing data to the file
b.write("Text") # Writes data to the file, this will overwrite any existant data within.
# It has binary support and is able to write binary data too.
# Appending data to the file
b.append("Text") # Appends data to the file, this will add in any data at the end of the file.
# Retrieve the contents from the file
content, lines = b.get_contents() # This method returns two values, the file content, and the file content in lines. (file.read, file.readlines())
# You may iterate over the lines for the content of each.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
BetterDataManagement-1.4.1.tar.gz
(19.2 kB
view hashes)
Built Distribution
Close
Hashes for BetterDataManagement-1.4.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20be341b67a01fdb6dd338d1242a56bdc74abf0f26000138377f17df4bce6f1a |
|
MD5 | f1a9d8c7c2dc43f84c5b10b23d4d5122 |
|
BLAKE2b-256 | 67a6cb4c5e32d03bde4253a93dfbe51b9ac4a3b36098eb8b4f98708218754fd9 |
Close
Hashes for BetterDataManagement-1.4.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 620943e9b9b5f470f0309a87b027aa2d24dee1fcccd5400d9f9d82a8a739aa9d |
|
MD5 | da8ff9833b3bd164f6c4f1c8dbc890d6 |
|
BLAKE2b-256 | f14977cb74258ba6ea0018fcce1774ab6a7ae16592a0be5b21408d4f1cf95450 |