Notion Blog
技术分享1 分钟阅读

Python 命令行工具开发

命令行工具是一种轻量小工具,比如说python中的pip命令,命令行工具之所以受欢迎,是因为它们具有高度的可定制性和灵活性。通过编写脚本或命令序列,用户可以自动化执行一系列任务,从而提高工作效率。

使用Python库:

argparse

argparse是 Python 中的一个标准库,用于编写用户友好的命令行接口。通过 argparse,开发者可以轻松地定义命令行选项、参数和子命令,从而为用户提供灵活且强大的命令行工具。

简单示例

实现一个命令行小工具,输入—name 小明

控制台输出:你好,小明!

新建py文件,test.py

import argparse

def main():
    # 创建ArgumentParser对象
    parser = argparse.ArgumentParser(description='这是一个简单的命令行工具示例')

    # 添加参数,例如添加一个名为--name的可选参数
    parser.add_argument('--name', type=str, help='你的名字')

    # 解析命令行参数
    args = parser.parse_args()

    # 使用解析后的参数
    if args.name:
        print(f"你好,{args.name}!")
    else:
        print("你好,没有提供名字!")

# 当作为脚本运行时调用main函数
if __name__ == '__main__':
    main()

工具使用

python .\test.py --name 小明

#执行结果
#你好,小明!

结合上面的实现一个阿里云盘命令行简单的上传下载工具

使用三方库:aligo

创建alyun.py

import argparse
from aligo import Aligo
import os

def main():
    # 创建ArgumentParser对象
    parser = argparse.ArgumentParser(description='这是一个简单的命令行工具示例')
    ali = Aligo()
    # 添加参数,例如添加一个名为--name的可选参数
    parser.add_argument('--check', type=str, help='查看对应路径列表数据')
    parser.add_argument('--get', type=str, help='下载的根据输入文件完整path,如:a/test.text')
    parser.add_argument('--put', type=str, help='上传文件的根据输入文件完整path,如:a/test.text,上传到api路径')

    # 解析命令行参数
    args = parser.parse_args()

    # 使用解析后的参数
    if args.check:
        remote_folder = ali.get_folder_by_path(args.check)
        file_list = ali.get_file_list(parent_file_id=remote_folder.file_id)
        for file in file_list:
            print(file)
    if args.get:
        file = ali.get_file_by_path(args.get)
        local_folder = os.getcwd()
        if file.type == 'file':
            ali.download_file(file=file, local_folder=local_folder)
        else:
            ali.download_folder(file.file_id, local_folder=local_folder)
    if args.put:
        remote_folder = ali.get_folder_by_path('api')
        ali.upload_files(file_paths=[args.put], parent_file_id=remote_folder.file_id)



# 当作为脚本运行时调用main函数
if __name__ == '__main__':
    main()

有关使用上的问题,欢迎您在底部评论区留言,一起交流~

读者评论

评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。

0/1500

暂无评论,欢迎抢沙发。