✍57 PiPy上传模块&Linux 拆分合并

最近模拟 linux split 指令用 Python 写了个文件拆分&合并的模块,用于单个文件传输大小上限的场景

想着能随便换个电脑就能用上,记录一下PiPy上传的过程

参考文章 : http://www.52codes.net/article/75014.html

一、准备

二、目录结构

1.结构介绍

image-20211215143644274

  • 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
  • 执行成功后生成的目录:

image-20211215144744954

dist 使我们需要上传的目录

四.上传

1.先安装上传所需要的工具包

pip install --user --upgrade twine

2.上传 dist 下的文件

python -m twine upload --repository pypi dist/*

上传过程中需要输入用户名和密码

image-20211215145536370

如果不想每次上传都需要输入可以在c盘的账户名下创建.pypirc的文件,例如 :C:\Users\shawn

  • .pypirc
[distutils]
index-servers=pypi
[pypi]
repository=https://upload.pypi.org/legacy/
username=用户名
password=密码
  • PyPi ----> Your projects 查看

image-20211215145727040

五.使用

1.安装

pip install split-merge-dir

2.导入

import splitmerge

image-20211215145942569

六.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...)

image-20211215152010401

split -C 300M test.txt test_split.txt  # 可以指定名字(会加上 aa,ab,ac...后缀)

image-20211215152121882

2.合并

cat test_split.txt* > new_test.txt

image-20211215152328778

posted @ 2022-02-16 16:36  给你骨质唱疏松  阅读(53)  评论(0编辑  收藏  举报