使用go语言开发selpg

YOLO26涨点改进 | 损失函数改进篇 | 引入SlideLoss,适配尺度变化+遮挡+难易样本不平衡,手把手配置+实战案例 COCO-Hard是COCO数据集的复杂场景子集,包含80个类别,重点筛选多尺度、遮挡密集样本,其中小尺度目标(<32×32像素)占比42%,大尺度目标(>128×128像素)占比28%,遮挡目标占比57%,场景涵盖人群密集、车流拥堵、复杂工业环境,完美模拟真实复杂检测场景,适合验证SlideLoss的适配性。 阅读详情

selpg介绍

这是一个什么东西,引用网上的介绍,结合官网的介绍:
selpg 是从文本输入选择页范围的实用程序。该输入可以来自作为最后一个命令行参数指定的文件,在没有给出文件名参数时也可以来自标准输入。selpg首先处理所有的命令行参数。在扫描了所有的选项参数(也就是那些以连字符为前缀的参数)后,如果selpg发现还有一个参数,则它会接受该参数为输入文件的名称并尝试打开它以进行读取。如果没有其它参数,则 selpg 假定输入来自标准输入。

go语言开发过程

输入参数设计:

需要考虑的参数包括:

  • 开始页数(startPage)
  • 结束页数(endPage)
  • 输入来源(infile):这里有两个选择,包括标准输入和文本读取
  • 输出:包括标准输出或者重定向到文件
  • 读取类型(pageType):是按页读取还是按行读取
  • 每一页包括多少行(pageLength)
参数获取

这里使用的是pflag包,其实使用的时候和flag包没有很大区别

flag.IntVar(&args.startPage, "s", -1, "Start page.")
flag.IntVar(&args.endPage, "e", -1, "End page.")
flag.IntVar(&args.pageLength, "l", 72, "Line number per page.")
flag.BoolVar(&args.pageType, "f", false, "Determine form-feed-delimited")
flag.StringVar(&args.fileDest, "d", "", "specify the printer")
flag.Parse()
输入错误判断

这里要考虑的内容又很多,包括输入时开始页数的取值范围,结束页数的取值范围,读取文件时是否出现错误,输出文件时是否发生错误等等。这里的错误判断我放在每一步中进行,并没有封装到一个函数中,因为我觉得每一种错误都需要一个错误信息。

判断输入位置和输出位置

这里我先判断输出位置在哪里,是输出到屏幕还是重定向到文件中,如果是输出到屏幕,直接调用

fmt.Println()

函数即可,但如果是重定向到文件中,则需要使用管道将输入写到文件中,在go语言中:

cmd = exec.Command("cat", "-n")
stdin, err = cmd.StdinPipe()

首先exec.Command函数返回一个*Cmd,用于使用给出的参数执行“cat”指定的程序,而cmd.StdinPipe会创建一个管道将输入写到文件中去。同时,这里还涉及到-d命令,当调用

cmd.Run()

函数时,由于我们虚拟机没有连接打印机,这里会返回一个错误。同时由于cat命令,我们可以看到打印的内容。
对于输入位置,可以通过判断infile是否为空,来判断是否应该读取文件。

关于-dXXX命令

selpg 还允许用户使用“-dDestination”选项将选定的页直接发送至打印机。这里,“Destination”应该是 lp 命令“-d”选项(请参阅“man lp”)可接受的打印目的地名称。该目的地应该存在 ― selpg 不检查这一点。在运行了带“-d”选项的 selpg 命令后,若要验证该选项是否已生效,请运行命令“lpstat -t”。该命令应该显示添加到“Destination”打印队列的一项打印作业。如果当前有打印机连接至该目的地并且是启用的,则打印机应打印该输出。这一特性是用 popen() 系统调用实现的,该系统调用允许一个进程打开到另一个进程的管道,将管道用于输出或输入。

AI应用质量工程实践:从评估到监控的完整体系构建 在软件工程领域,质量保障体系是确保产品稳定可靠的核心机制,涉及度量指标、保障流程和工具链的完整闭环。随着生成式AI应用的快速发展,如何将传统软件工程中的质量门禁思想引入AI领域,成为工程实践的关键挑战。其核心原理在于构建可量化、可监控、可改进的质量评估框架,通过自动化测试、持续监控和反馈优化来管理AI输出的不确定性。这一技术价值在于将AI应用从原型阶段推向产品化,确保输出的一致性、安全性和可靠性。在实际应用场景中,开发者需要从功能性、非功能性、一致性和合规性四个维度构建评估体系,并借助LLM-as-a-Ju 阅读详情

相关推荐

INCA文件刷写全流程:从ES581驱动安装到XCP协议实战(附避坑指南)

本文详细解析INCA文件刷写的全流程操作,从ES581驱动安装到XCP协议配置,提供实战经验与避坑指南。涵盖A2L文件校验、工作区优化、XCP参数调优及自动化刷写技巧,帮助工程师高效完成ECU开发中的文件刷写任务。

egg99的博客 943

Golang : pflag 包简介

笔者在前文中介绍了 Golang 标准库中 flag 包的用法,事实上有一个第三方的命令行参数解析包 pflag 比 flag 包使用的更为广泛。pflag 包的设计目的就是替代标准库中的 flag 包,因此它具有更强大的功能并且与标准的兼容性更好。本文将介绍 pflag 包与 flag 包相比的主要优势,如果你还不了解 flag 包的的用法,请参考《Golang : flag 包简介》一文。本文...

weixin_30660027的博客 624

深度强化学习研究笔记(1)——入门(马尔科夫决策过程,贝尔曼方程,价值迭代和策略迭代)

1. 强化学习(Reinforcement learning)概述 强化学习(Reinforcement learning)的基本内涵是将问题用代理和环境进行建模。其中代理能够对环境执行一些特定的动作a∈Aa \in Aa∈A,从而到达某个状态s∈Ss \in Ss∈S,然后我们就可以根据该状态为代理赋予特定的奖励rrr。强化学习的基本思想如下图所示: 代理的目标是最大化未来的奖励总和,它通过将...

越野者的博客 5280

从基础到进阶:pflag重构Go命令行解析体验

你是否还在为Go原生flag包的功能不足而苦恼?是否需要更强大的命令行参数解析能力来提升应用程序的用户体验?本文将全面介绍pflag(GitHub 加速计划 / pf / pflag),一个功能强大的Go语言命令行标志(Flag)库,它不仅兼容原生flag包,还提供了更多高级特性,帮助开发者构建更灵活、更易用的命令行工具。 通过本文,你将学习到: - pflag与原生flag的核心差异与优势 -...

gitblog_00008的博客 436

MedicalNet实战:3D医疗影像分割从零到部署(PyTorch+ResNet50)

本文详细介绍了基于PyTorch和MedicalNet预训练模型进行3D医疗影像分割的完整实战流程。通过加载ResNet50预训练权重进行迁移学习,大幅降低了对标注数据量的需求,并提升了模型性能。文章涵盖了从数据准备、模型微调、训练优化到最终部署的每一步,为医疗AI开发者提供了从零到部署的清晰指南。

weixin_29062671的博客 588

HHD Device Monitoring Studio:破解版在串口调试中的实战应用

本文详细介绍了HHD Device Monitoring Studio破解版在串口调试中的实战应用,包括安装指南、串口监控功能解析、Modbus RTU协议分析案例以及自定义协议解析技巧。通过具体操作步骤和性能优化建议,帮助开发者高效完成端口监控和调试任务,提升工作效率。

weixin_29268331的博客 940

用Go写一个简单的Selpg命令行程序

仿照C语言的Selpg用go语言写的Selpg命令行程序。

Yezo13的博客 498

DeepSeek安装教程

两分钟讲述deepseek正确安装教程

weixin_45906703的博客 1663

使用Go语言实现Selpg

mark

Eddie_Peng的博客 410

基于Ventoy制作单个U盘引导Windows+Linux+黑苹果macOS

一款国内高手开发的一个名为Ventoy的开源多系统启动U盘制作工具,官方链接:https://www.ventoy.net/cn/index.html Ventoy 特点 不影响U盘日常普通使用 直接从ISO文件启动,无需解开 支持MBR和GPT分区格式(1.0.15+) 支持超过4GB的ISO文件 支持大部分常见操作系统, 已测试650+ 个ISO文件 不仅仅是启动,而是完整的安装过程 版本升级时数据不会丢失 Ventoy 待改进 不支持macOS和ChromeOS 准备2个空的U.

wybarcelona的博客 3万+

主题045:四足机器人的运动仿真

四足机器人(Quadruped Robot)是模仿哺乳动物四肢运动设计的机器人系统,具有优异的地形适应性和运动稳定性。与双足机器人相比,四足机器人在静态和动态稳定性方面具有天然优势,能够在复杂地形(如楼梯、斜坡、碎石地面)上稳定行走,因此在野外探索、救援任务、军事应用等领域具有广阔的应用前景。本教程将介绍四足机器人的运动学建模、步态规划、稳定性分析和控制策略,并通过Python仿真验证相关理论。典型的四足机器人每条腿包含3个关节:常见的腿部构型包括:对于单腿,足部位置 pfoot\mathbf{p}_{fo

kkchenjj的博客 679

go string 转 uint64_【go语言】一文轻松掌握命令行参数解析包pflag的使用

在之前的文章《【go语言】一文轻松掌握日志记录框架glog的使用》示例代码中,曾用过go语言标准库中的flag来解析命令行参数。pflag是个第三方命令行参数解析包,实际使用更为广泛。pflag的设计目的就是替代标准库中的flag包,因此具有更强大的功能和兼容性。与flag相比,pflag具有如下优点:1)支持更加精细的参数类型,例如:flag只支持uint和uint64,而pflag额外支持ui...

weixin_29607629的博客 437

Python编程基础05:运算符与表达式

文章目录一、算术运算符1、分类说明表2、注意事项3、案例演示任务1、计算成绩差与平均成绩课堂练习:编程处理带余除法。任务2、打印购物小票 运算符就是专门用于告诉程序执行特定运算或逻辑操作的符号。表达式是指由常量、变量和运算符组成的一个算式。编写程序对数据进行处理,其实处理就是对数据实施各种各样的运算,搞懂运算符与表达式是我们编写程序的基础性工作,本次讲课笔记通过案例讲解各种运算符的用法以及正确书写Python表达式的注意事项。 一、算术运算符 Python中的算术运算符就是用来处理四则运算的符号,也是

howard2005的专栏 3120

Go语言开发selpg命令行程序

文章目录任务先行知识flag与pflag异常处理缓冲区和文件读写程序逻辑及实现main定义结构体以存放命令行参数绑定命令行参数并解析检查参数读取输入,进行输出部分测试结语 任务 用 Go 语言实现一个类 selpg 程序,关于该程序的详细介绍,可见:开发Linux命令行实用程序 该程序的 C 语言源码实现:selpg.c selpg 的用法如下: selpg --s startPage --e e...

Blog of SquirrelYuyu 437

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

服务计算-用go语言开发CLI命令行实用程序-Selpg

文章目录1、Selpg的介绍2、具体要求3、实现具体思路3.1引入的包3.2相关结构体3.3主函数处理流程3.4FlagInit函数:3.5 process_args函数:3.6 process_input函数:3.7 测试代码 1、Selpg的介绍 selpg 允许用户指定从输入文本抽取的页的范围,这些输入文本可以来自文件/标准输入/另一个进程。 2、具体要求 实现指令的要求请查看该链接 3、实...

huangshm23的博客 225

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

服务计算(1) Go 语言开发 selpg 命令行实用程序

参考 https://pmlpml.github.io/ServiceComputingOnCloud/ex-cli-basic https://www.ibm.com/developerworks/cn/linux/shell/clutil/index.html 源代码 /*============================================================...

Z_J_Q_ 479

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

服务计算--使用 golang 开发 开发 Linux 命令行实用程序 中的 selpg作业3

本次实验的内容是使用 golang 开发 selpg 程序设计 程序实现 测试结果 实验心得 程序设计 输入指令的格式应该是selpg --s start_page --e end_page [--f | --l lines_per_page] [ --d print_dest] [file_name] 参数 要求 意义 –s 必需 起始页 –e 必需 结束页 –f 可选 根据分页符翻页 –l 可选 根据行数翻页,每页的行数 –d 可选 打印机地址 file_na

huyaxiaomuge的博客 275

sc_homework3

服务计算 作业3CLI 命令行实用程序开发基础概述基础知识selpg概念参数处理Golang的支持开发实践思考 CLI 命令行实用程序开发基础 参考网站:开发简单CLI程序 概述 CLI(Command Line Interface,命令行界面)实用程序是Linux下应用开发的基础。正确的编写命令行程序让应用与操作系统融为一体,通过shell或script使得应用获得最大的灵活性与开发效率。例如: Linux提供了cat、ls、copy等命令与操作系统交互; go语言提供一组实用程序完成从编码、编译、库管

weixin_45683170的博客 562

服务计算作业三——实现selpg

目录作业要求实现 作业要求 使用 golang 开发 开发 Linux 命令行实用程序 中的 selpg 提示: 请按文档 使用 selpg 章节要求测试你的程序 请使用 pflag 替代 goflag 以满足 Unix 命令行规范, 参考:Golang之使用Flag和Pflag golang 文件读写、读环境变量,请自己查 os 包 “-dXXX” 实现,请自己查 os/exec 库,例如案例 Command,管理子进程的标准输入和输出通常使用 io.Pipe,具体案例见 Pipe 请自带测试程序,.

Floating__dust的博客 384

go语言之CLI 命令行实用程序开发基础

CLI 命令行实用程序开发基础1、selpg简介1.1 程序说明1.2 文件内容1.3 参数格式 1、selpg简介 1.1 程序说明 selpg是一个命令行工具,全称是Select Pages,它允许用户从输入文本中抽取指定的页的范围,然后按行数或按分页符输出这些页,同时该命令还允许用户指定标准输出的位置。 selpg可以有选择性的查看或打印某个文档的部分内容,简单、高效、节约资源。 1.2 文件内容 文件名 作用 selpg.go 核心文件,selpg功能的实现代码 test 测试文

weixin_43953962的博客 1067

使用Go开发selpg程序

使用Go开发selpg程序 源码 源代码 selpg简介 selpg即SELect PaGes。允许用户指定从输入文本抽取的页的范围,这些输入文本可以来自文件或另一个进程。 命令行参数 -sNumber,起始页,强制选项 -eNumber,结束页,强制选项 -lNumber,文本的页行数固定,默认值为72 -f,文本的页由 ASCII 换页字符(十进制数值为 12,在 C 中用“\f”表示)定界...

Drawspirit的博客 413

服务计算——Go语言实现selpg

文章目录1. 项目需求2. 分析设计2.1 项目所涉及的Go语言知识点2.2 理解selpg2.3 Go使用flag包解释命令行参数2.3.1 类型一2.3.1.1 类型一定义参数2.3.1.2 类型一解析参数2.3.2 类型二2.3.3 类型三2.4 命令行参数设计2.5 读写函数2.5.1 bufio.NewReader2.5.2 bufio.Writer2.6 os/exe2.6.1 exe...

wyxwyx469410930的博客 1033

selpg开发

selpggolang for selpg(CLI) 开发 Linux 命令行实用程序1. usage1. $ selpg -s=1 -e=1 input_file 该命令将把“input_file”的第 1 页写至标准输出(也就是屏幕),因为这里没有重定向或管道。 2. $ selpg -s=1 -e=1 < input_file 该命令与示例 1 所做的工作相同,但在本例中,

mohuak的博客 419

使用GO实现selpg

文章目录使用GO实现selpg 使用GO实现selpg

kid_hw的博客 558

服务计算——开发简单 CLI 程序

文章目录1、概述2、基础知识selpg 程序逻辑参数处理输入处理3、开发实践4、使用 selpg 1、概述 CLI(Command Line Interface)实用程序是Linux下应用开发的基础。正确的编写命令行程序让应用与操作系统融为一体,通过shell或script使得应用获得最大的灵活性与开发效率。Linux提供了cat、ls、copy等命令与操作系统交互;go语言提供一组实用程序完成从...

qiao_zhang的博客 312

【Go语言学习】开发简单 CLI 程序

文章目录前言开发简单 CLI 程序——selpgCLI基础简介Go的os, flag包selpg说明简介Go程序设计与实现定义Flags检查选项参数打开输入文件读取并且输出内容测试 前言 实验的详细内容请参考老师的课程网站:传送门 本次实验作业的项目在我的GitHub上:传送门 开发简单 CLI 程序——selpg CLI基础 简介 CLI(Command Line Interface)实用程序是...

JKJKL1的博客 662
上一篇: aaa
下一篇: 使用docker部署web应用
hellowangld
博客等级 码龄10年 15粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellowangld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值