# FileUtils - Gerenciamento de Arquivos em Python
Este projeto fornece utilitários para manipulação de arquivos em Python, incluindo listagem, cópia, movimentação, remoção e compactação de arquivos. Além disso, inclui testes unitários para garantir a correta funcionalidade dos métodos implementados.
## 📌 Funcionalidades
O módulo `fileutils.py` contém as seguintes funções:
- **Listagem de arquivos**: `list_files(source_dir, extensions, include_sub_dir=False)`
- Retorna uma lista de arquivos em um diretório com as extensões especificadas.
- **Movimentação de arquivos**: `move_files(files_to_move, destination_dir, verbose=True)`
- Move arquivos para um diretório de destino.
- **Remoção de arquivos**: `remove_files(file_list, verbose=True)`
- Remove arquivos do sistema.
- **Cópia de arquivos**: `copy_files(file_list, destination_dir, prefix="copy_", verbose=True)`
- Copia arquivos para um diretório de destino com um prefixo opcional.
- **Compactação de arquivos**: `zip_files(files_to_zip, output_zip, verbose=True)`
- Cria um arquivo ZIP contendo os arquivos especificados.
- **Extração de arquivos ZIP**: `unzip_files(zip_file, extract_to)`
- Extrai arquivos de um ZIP para um diretório especÃfico.
- **Remoção de assinaturas digitais de arquivos**: `remove_signature(file_list, output_dir, sign_start="|9999|", encoding="utf-8", verbose=True)`
- Remove assinaturas digitais de arquivos a partir de um marcador especÃfico.
- **Organização de arquivos**: `organize(source_dir, destination_dir, file_selector=default_file_selector, copy=True, verbose=True)`
- Organiza arquivos conforme um função seletora e move ou copia para um diretório especÃfico.
## 🧪 Testes Unitários
O projeto inclui testes unitários para validar a funcionalidade das funções. Os testes são implementados nos seguintes arquivos:
- `01_list_files_test.py`: Testa a listagem de arquivos no diretório.
- `02_copy_files_test.py`: Testa a cópia de arquivos para um diretório de destino.
- `03_unzip_files_test.py`: Testa a extração de arquivos ZIP.
- `04_zip_file_test.py`: Testa a criação de arquivos ZIP.
- `05_organize_test.py`: Testa a organização de arquivos para um diretório de destino.
Os testes utilizam `unittest` e podem ser executados com:
```sh
python -m unittest discover
```
## 🚀 Como Usar
1. Clone este repositório:
```sh
git clone https://github.com/seu-usuario/fileutils.git
cd fileutils
```
2. Instale as dependências:
```sh
pip install tqdm
```
3. Utilize os métodos diretamente no seu código Python, por exemplo:
```python
from fileutils import list_files, copy_files
arquivos = list_files(source_dir="meu_diretorio", extensions=(".txt", ".csv"))
copy_files(arquivos, destination_dir="backup")
```
4. Execute os testes para verificar a integridade do código:
```sh
python -m unittest discover
```
## 📜 Licença
Este projeto está sob a licença MIT.
Raw data
{
"_id": null,
"home_page": null,
"name": "python-fileutils",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "file utils",
"author": "Ismael Nascimento",
"author_email": "ismaelnjr@icloud.com",
"download_url": "https://files.pythonhosted.org/packages/8d/6e/9ba70c4fb11cc83c65bf226ae89de4f3bc239bcb056a4d655a53fa9adfa0/python_fileutils-0.0.6.tar.gz",
"platform": null,
"description": "# FileUtils - Gerenciamento de Arquivos em Python\r\n\r\nEste projeto fornece utilit\u00c3\u00a1rios para manipula\u00c3\u00a7\u00c3\u00a3o de arquivos em Python, incluindo listagem, c\u00c3\u00b3pia, movimenta\u00c3\u00a7\u00c3\u00a3o, remo\u00c3\u00a7\u00c3\u00a3o e compacta\u00c3\u00a7\u00c3\u00a3o de arquivos. Al\u00c3\u00a9m disso, inclui testes unit\u00c3\u00a1rios para garantir a correta funcionalidade dos m\u00c3\u00a9todos implementados.\r\n\r\n## \u00f0\u0178\u201c\u0152 Funcionalidades\r\n\r\nO m\u00c3\u00b3dulo `fileutils.py` cont\u00c3\u00a9m as seguintes fun\u00c3\u00a7\u00c3\u00b5es:\r\n\r\n- **Listagem de arquivos**: `list_files(source_dir, extensions, include_sub_dir=False)`\r\n - Retorna uma lista de arquivos em um diret\u00c3\u00b3rio com as extens\u00c3\u00b5es especificadas.\r\n \r\n- **Movimenta\u00c3\u00a7\u00c3\u00a3o de arquivos**: `move_files(files_to_move, destination_dir, verbose=True)`\r\n - Move arquivos para um diret\u00c3\u00b3rio de destino.\r\n\r\n- **Remo\u00c3\u00a7\u00c3\u00a3o de arquivos**: `remove_files(file_list, verbose=True)`\r\n - Remove arquivos do sistema.\r\n\r\n- **C\u00c3\u00b3pia de arquivos**: `copy_files(file_list, destination_dir, prefix=\"copy_\", verbose=True)`\r\n - Copia arquivos para um diret\u00c3\u00b3rio de destino com um prefixo opcional.\r\n\r\n- **Compacta\u00c3\u00a7\u00c3\u00a3o de arquivos**: `zip_files(files_to_zip, output_zip, verbose=True)`\r\n - Cria um arquivo ZIP contendo os arquivos especificados.\r\n\r\n- **Extra\u00c3\u00a7\u00c3\u00a3o de arquivos ZIP**: `unzip_files(zip_file, extract_to)`\r\n - Extrai arquivos de um ZIP para um diret\u00c3\u00b3rio espec\u00c3\u00adfico.\r\n\r\n- **Remo\u00c3\u00a7\u00c3\u00a3o de assinaturas digitais de arquivos**: `remove_signature(file_list, output_dir, sign_start=\"|9999|\", encoding=\"utf-8\", verbose=True)`\r\n - Remove assinaturas digitais de arquivos a partir de um marcador espec\u00c3\u00adfico.\r\n\r\n- **Organiza\u00c3\u00a7\u00c3\u00a3o de arquivos**: `organize(source_dir, destination_dir, file_selector=default_file_selector, copy=True, verbose=True)`\r\n - Organiza arquivos conforme um fun\u00c3\u00a7\u00c3\u00a3o seletora e move ou copia para um diret\u00c3\u00b3rio espec\u00c3\u00adfico.\r\n\r\n## \u00f0\u0178\u00a7\u00aa Testes Unit\u00c3\u00a1rios\r\n\r\nO projeto inclui testes unit\u00c3\u00a1rios para validar a funcionalidade das fun\u00c3\u00a7\u00c3\u00b5es. Os testes s\u00c3\u00a3o implementados nos seguintes arquivos:\r\n\r\n- `01_list_files_test.py`: Testa a listagem de arquivos no diret\u00c3\u00b3rio.\r\n- `02_copy_files_test.py`: Testa a c\u00c3\u00b3pia de arquivos para um diret\u00c3\u00b3rio de destino.\r\n- `03_unzip_files_test.py`: Testa a extra\u00c3\u00a7\u00c3\u00a3o de arquivos ZIP.\r\n- `04_zip_file_test.py`: Testa a cria\u00c3\u00a7\u00c3\u00a3o de arquivos ZIP.\r\n- `05_organize_test.py`: Testa a organiza\u00c3\u00a7\u00c3\u00a3o de arquivos para um diret\u00c3\u00b3rio de destino.\r\n\r\nOs testes utilizam `unittest` e podem ser executados com:\r\n\r\n```sh\r\npython -m unittest discover\r\n```\r\n\r\n## \u00f0\u0178\u0161\u20ac Como Usar\r\n\r\n1. Clone este reposit\u00c3\u00b3rio:\r\n ```sh\r\n git clone https://github.com/seu-usuario/fileutils.git\r\n cd fileutils\r\n ```\r\n\r\n2. Instale as depend\u00c3\u00aancias:\r\n ```sh\r\n pip install tqdm\r\n ```\r\n\r\n3. Utilize os m\u00c3\u00a9todos diretamente no seu c\u00c3\u00b3digo Python, por exemplo:\r\n\r\n ```python\r\n from fileutils import list_files, copy_files\r\n\r\n arquivos = list_files(source_dir=\"meu_diretorio\", extensions=(\".txt\", \".csv\"))\r\n copy_files(arquivos, destination_dir=\"backup\")\r\n ```\r\n\r\n4. Execute os testes para verificar a integridade do c\u00c3\u00b3digo:\r\n ```sh\r\n python -m unittest discover\r\n ```\r\n\r\n## \u00f0\u0178\u201c\u0153 Licen\u00c3\u00a7a\r\n\r\nEste projeto est\u00c3\u00a1 sob a licen\u00c3\u00a7a MIT.\r\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Biblioteca utilit\u00e1ria para manipula\u00e7\u00e3o de arquivos",
"version": "0.0.6",
"project_urls": null,
"split_keywords": [
"file",
"utils"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "863c49b8aea2918a42be2a032792e01663948c8b6ca6b5c1c94f376fd711096e",
"md5": "be60c8053e73cdfebb091f0d37b89841",
"sha256": "b192dc27e0db3226beb77fa67af80cc7f935034a59e8d569c473b11b5691146c"
},
"downloads": -1,
"filename": "python_fileutils-0.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "be60c8053e73cdfebb091f0d37b89841",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 6231,
"upload_time": "2025-02-02T01:53:00",
"upload_time_iso_8601": "2025-02-02T01:53:00.890427Z",
"url": "https://files.pythonhosted.org/packages/86/3c/49b8aea2918a42be2a032792e01663948c8b6ca6b5c1c94f376fd711096e/python_fileutils-0.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8d6e9ba70c4fb11cc83c65bf226ae89de4f3bc239bcb056a4d655a53fa9adfa0",
"md5": "6a7e2f549b1edc4eddb1e098657f8638",
"sha256": "123cbb995b9cc9acbf904cce912f61e21370cf4cad8c528ecf953a70d533f047"
},
"downloads": -1,
"filename": "python_fileutils-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "6a7e2f549b1edc4eddb1e098657f8638",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 6060,
"upload_time": "2025-02-02T01:53:02",
"upload_time_iso_8601": "2025-02-02T01:53:02.617198Z",
"url": "https://files.pythonhosted.org/packages/8d/6e/9ba70c4fb11cc83c65bf226ae89de4f3bc239bcb056a4d655a53fa9adfa0/python_fileutils-0.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-02 01:53:02",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "python-fileutils"
}