Skip to main content

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 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")

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等(通过下载功能)

📝 注意事项

  1. 编码问题:所有文本操作默认使用UTF-8编码
  2. 文件存在检查:下载文件时会自动检查文件是否已存在,避免重复下载
  3. 错误处理:批量下载时支持失败跳过或抛出异常两种模式
  4. 路径处理:使用绝对路径或相对路径均可,程序会自动处理

📄 许可证

MIT License - 详见LICENSE文件

Project details


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.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

filekits-0.1.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file filekits-0.1.0.tar.gz.

File metadata

  • Download URL: filekits-0.1.0.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for filekits-0.1.0.tar.gz
Algorithm Hash digest
SHA256 490672f93b0955d5fb5be987728acb877509cc52f89274f2571f8ae243f8bf00
MD5 b97471c2eefb3f85bb204f33f8218a37
BLAKE2b-256 c6147e00c35978a92fbbcd5619ed66741e4046f7349df29cf7bd1cbb621370e2

See more details on using hashes here.

File details

Details for the file filekits-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: filekits-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for filekits-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2a091417d8c1f3a77f279085403d017b27359486bc8ea92cf8c334bb970ac119
MD5 f116a52cecd765192cb51399d710610e
BLAKE2b-256 9defcad8fbcb9c8e2bda215bac08340a88db4e3e4dd2333f3d2aa87e4186ab1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page