✍57 PiPy上传模块&Linux 拆分合并
最近模拟 linux split 指令用 Python 写了个文件拆分&合并的模块,用于单个文件传输大小上限的场景
想着能随便换个电脑就能用上,记录一下PiPy上传的过程
一、准备
- PiPy 账号申请 : https://pypi.org/
二、目录结构
1.结构介绍
split-merge-dir
: 项目根目录 (pip 安装时使用的包名)(可以与模块名一样)splitmerge
: 模块名 (import 导入时使用的模块名)(可以与项目名一样)setup.py
: setuptools 的构建脚本
2.文件示例
split-merge.py
import os
def split_file(file_name, size, out_name):
"""
文件拆分
:param file_name: 输入文件
:param size: 单个文件大小(字节)
:param out_name: 输出文件(shx-num结尾)
:return:
"""
...
def merge_file(input_re_name, path, out_name):
"""
文件合并
:param input_re_name: shx-num 结尾的文件名前缀+‘*’(例 :aaa.txt*)
:param path: shx-num 结尾的文件所在的目录
:param out_name: 输出文件
:return:
"""
....
__init__.py
from .split_merge import merge_file,split_file
setup.py
'''
@File : setup.py
@Author : Shawn
@Time : 2021-12-15 17:22
@Version : 6.0
@Contact : shx15979391664@163.com
@Dect : None
'''
from setuptools import setup, find_packages
setup(
name="split-merge-dir", # 项目名称
version="6.0.0", # 版本号,pip默认安装最新版
keywords=("pip", "split", "merge"),
description="文件拆分 & 合并",
long_description="文件拆分 & 合并",
license="MIT Licence",
# url="https://github.com/jiangfubang/balabala", # 项目相关文件地址,可有可无
author="Shawn",
author_email="shx15979391664@163.com",
packages=find_packages(), # 自动发现根目录中的所有的子包
include_package_data=True,
platforms="any",
# install_requires = ["numpy"] # 该模块需要的第三方库
# 其他信息,这里写了使用 Python3,MIT License许可证,不依赖操作系统。
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
)
三、编译
1.先安装编译所需要的工具包
pip install --user --upgrade setuptools wheel
2.编译
- 进入
setup.py
所在的目录
python setup.py sdist bdist_wheel
- 执行成功后生成的目录:
dist
使我们需要上传的目录
四.上传
1.先安装上传所需要的工具包
pip install --user --upgrade twine
2.上传 dist
下的文件
python -m twine upload --repository pypi dist/*
上传过程中需要输入用户名和密码
如果不想每次上传都需要输入可以在c盘的账户名下创建
.pypirc
的文件,例如 :C:\Users\shawn
.pypirc
[distutils]
index-servers=pypi
[pypi]
repository=https://upload.pypi.org/legacy/
username=用户名
password=密码
- PyPi ----> Your projects 查看
五.使用
1.安装
pip install split-merge-dir
2.导入
import splitmerge
六.Linux 文件拆分 & 合并
0.生成指定大小文件,用0填充
dd if=/dev/zero bs=1024 count=700000 of=test.txt
# bs : 每次输入大小(bytes)
# count : 输入次数
# of : 输出文件名
1.拆分
- 参数说明
- <行数> : 指定每多少行切成一个小文件
-b <字节> : 指定每多少字节切成一个小文件(可以指定单位 : K,M,G,T..)
--help : 在线帮助
--version : 显示版本信息
-C <字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
[输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号
- 示例
split -C 300M test.txt # 按每份300M切分 (名字默认 xaa,xab,xac...)
split -C 300M test.txt test_split.txt # 可以指定名字(会加上 aa,ab,ac...后缀)
2.合并
cat test_split.txt* > new_test.txt