Filekits for Python.
Project description
FileKits - Python文件处理工具包
一个简洁高效的Python文件处理工具包,提供了文件读写、网络下载、文件夹操作等常用功能,让文件处理变得更加简单。
🚀 功能特性
- 文件读写:支持txt、json、yaml、excel等多种格式的文件读写
- 网络下载:支持单文件和多文件下载,自动重试机制
- 文件夹操作:文件查找、文件夹清理等实用功能
- 数据处理:字典工具、pandas数据处理辅助功能
📁 项目结构
filekits/
├── __init__.py
├── base_io/ # 基础IO操作模块
│ ├── __init__.py
│ ├── load.py # 文件读取功能
│ ├── save.py # 文件保存功能
│ ├── folder.py # 文件夹操作
│ └── down_load.py # 网络文件下载
└── utils/ # 工具模块
├── __init__.py
├── dict_util.py # 字典处理工具
└── pd_util.py # pandas数据处理工具
📦 安装/更新/卸载
pip install filekits
pip install --upgrade filekits
pip uninstall filekits
🛠️ 使用方法
1. 文件读取
读取文本文件
from filekits.base_io.load import load_txt
# 读取txt文件为列表
text_list = load_txt('example.txt')
# 读取为字符串
text_str = load_txt('example.txt', return_type="str")
# 转换为小写列表
lower_list = load_txt('example.txt', lower_list=1)
读取JSON文件
from filekits.base_io.load import load_json
data = load_json('data.json')
读取YAML文件
from filekits.base_io.load import load_yaml
config = load_yaml('config.yaml')
读取Excel文件
from filekits.base_io.load import load_excel
# 读取为pandas DataFrame
df = load_excel('data.xlsx', return_type="df")
# 读取为openpyxl工作表
wb, sheet, rows = load_excel('data.xlsx', return_type="sheet")
2. 文件保存
保存DataFrame
from filekits.base_io.save import save_df
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]})
# 保存为Excel
save_df(df, 'output.xlsx')
# 保存为CSV
save_df(df, 'output.csv')
# 保存为JSON
save_df(df, 'output.json')
保存JSON文件
from filekits.base_io.save import save_json
data = {"name": "Alice", "age": 25}
save_json(data, 'data.json')
保存文本文件
from filekits.base_io.save import save_txt
my_list = ['line1', 'line2', 'line3']
save_txt(my_list, 'output.txt')
3. 文件夹操作
查找文件
from filekits.base_io.folder import find_files
# 查找所有jpg文件
jpg_files = find_files('/path/to/folder', '.jpg')
# 查找包含特定名称的文件
specific_files = find_files('/path/to/folder', '.txt', 'log')
向上查找指定文件夹
from filekits.base_io.folder import find_parent_folder
# 从当前文件位置开始,向上查找指定名称的文件夹
# 例如查找名为 "project" 的父文件夹路径
project_path = find_parent_folder("project")
if project_path:
print(f"找到文件夹路径: {project_path}")
else:
print("未找到指定的文件夹")
清空文件夹
from filekits.base_io.folder import clear_folder
# 清空并重新创建文件夹
clear_folder('/path/to/clean')
4. 网络文件下载
单文件下载
from filekits.base_io.down_load import download_file
# 下载文件
file_path = download_file('https://example.com/file.jpg', './downloads')
# 自定义文件名
file_path = download_file('https://example.com/file.jpg', './downloads', 'myfile.jpg')
# 返回完整信息
file_path, file_name = download_file('https://example.com/file.jpg', './downloads', return_type="both")
批量下载
from filekits.base_io.down_load import download_files
urls = [
'https://example.com/image1.jpg',
'https://example.com/image2.jpg'
]
# 批量下载图片
file_paths = download_files(urls, './images')
# 只下载特定类型文件
file_paths = download_files(urls, './downloads', extensions=['.jpg', '.png'])
# 返回字典格式(包含URL信息)
file_dicts = download_files(urls, './downloads', return_type="dict")
下载并转为Base64
from filekits.base_io.down_load import download_encode_base64
# 下载文件并直接获取base64编码
base64_str = download_encode_base64('https://example.com/image.jpg')
# 适用于需要直接处理文件内容而不保存到本地的场景
# 如:直接上传到云存储、嵌入到HTML/CSS、API传输等
批量下载并转为Base64
from filekits.base_io.down_load import batch_download_encode_base64
urls = [
'https://example.com/image1.jpg',
'https://example.com/image2.jpg'
]
# 批量下载并获取base64编码
base64_list = batch_download_encode_base64(urls)
5. 工具函数
字典操作
from filekits.utils.dict_util import remove_keys
data = {"name": "Alice", "age": 25, "password": "secret"}
clean_data = remove_keys(data, ["password"])
# 结果: {"name": "Alice", "age": 25}
⚙️ 配置说明
网络下载配置
- 自动重试机制:使用
funcguard.tools.send_request实现自动重试 - User-Agent:内置浏览器User-Agent,避免被服务器拒绝
- 特殊网站处理:针对阿里CDN等特定网站有优化处理
文件格式支持
- 文本文件:.txt
- 数据文件:.json, .yaml, .yml
- 表格文件:.xlsx, .csv
- 图片文件:.jpg, .png, .gif, .bmp等(通过下载功能)
📝 注意事项
- 编码问题:所有文本操作默认使用UTF-8编码
- 文件存在检查:下载文件时会自动检查文件是否已存在,避免重复下载
- 错误处理:批量下载时支持失败跳过或抛出异常两种模式
- 路径处理:使用绝对路径或相对路径均可,程序会自动处理
📄 许可证
MIT License
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
filekits-0.1.3.tar.gz
(11.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
filekits-0.1.3-py3-none-any.whl
(10.7 kB
view details)
File details
Details for the file filekits-0.1.3.tar.gz.
File metadata
- Download URL: filekits-0.1.3.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5b655c9fd67a929f42a755e74b5dac4799a6b8c18367c00c682978a410b47c6
|
|
| MD5 |
e6517dcc12f0568823f30300671cd4f8
|
|
| BLAKE2b-256 |
13bccd02c10baee66e28762cddc00fbc82c9e5bc8089471ebf07aa5ecd184692
|
File details
Details for the file filekits-0.1.3-py3-none-any.whl.
File metadata
- Download URL: filekits-0.1.3-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28b6f999af4f3857a3a7fc4ce75ee998a703591a4781f6a2a7e59db9a31fc519
|
|
| MD5 |
985fd7b46ff84017880ec1221afe2ce4
|
|
| BLAKE2b-256 |
71d3bd003acba4ee74f5edd69ce350e54584051ec78857ad2b3f980a115873f7
|