写一个python文件,在shell脚本中运行

news/2024/11/29 10:55:52/

最近要复现论文了,发现代码的主函数在.py文件中,运行脚本是在.sh中。

要命的事,我不懂,我怎么debug。

1.新建一个pycharm项目,新建main.py

import argparsedef get_args():parser = argparse.ArgumentParser()parser.add_argument('-b', '--batch_size', type=int, default=64)parser.add_argument('-i', '--image_directory', type=str, default='FGNET/images')# 添加其他命令行参数return parser.parse_args()def main():args = get_args()# 获取命令行参数的值batch_size = args.batch_sizeimage_directory = args.image_directory# 获取其他命令行参数的值# 在这里使用参数进行相应的操作print(f"batch_size: {batch_size}")print(f"image_directory: {image_directory}")# 其他操作if __name__ == '__main__':main()

2.新建main.sh文件

#!/bin/bashpython main.py -b 32 -i /path/to/imagesecho "操作已完成,按 Enter 键继续..."
read -p ""

其中,脚本在最后一行使用 read -p "" 命令来等待用户的输入。当用户按下 Enter 键后,脚本会退出,并保持命令窗口打开。

shell脚本中添加以下代码,用来检查,上一行是否执行成功。

# 检查上一条命令的返回值if [ $? -eq 0 ]; thenecho "脚本执行成功"
elseecho "脚本执行失败"
fi

项目目录结构:

运行此文件有以下几种方法

a.直接运行main.py文件即可

b.命令行运行main.py:

 这个命令其实就是shell脚本中的命令。

c.运行main.sh文件 

 

3.我们来试试如果main.py中默认不给出参数,直接运行main.py看看行不行。

仅需修改以下部分:

def get_args():parser = argparse.ArgumentParser()# parser.add_argument('-b', '--batch_size', type=int, default=64)parser.add_argument('-b', '--batch_size', type=int)# parser.add_argument('-i', '--image_directory', type=str, default='FGNET/images')parser.add_argument('-i', '--image_directory', type=str)# 添加其他命令行参数return parser.parse_args()

还可以运行。

我们再改一下代码:

在主函数中添加一行

print(f"batch_size+6: {batch_size+6}")

直接运行main.py就报错了。

 此时试试命令行运行:

 运行.sh文件看看

 

 好像懂了一点了。


http://www.ppmy.cn/news/179927.html

相关文章

环境感知算法——4.RandLA-Net基于SemanticKITTI训练

1.前言 RandLA-Net(Random Sampling and Local Feature Aggregator Network)是一种处理点云数据的神经网络结构,采用随机采样(Random Sampling, RS)以降低点云密度并减少计算量。尽管随机采样可能会丢掉一些有用的信息…

函数式编程

package com.jack.modules.base.controller;import java.util.function.Function;/*** author 苏煦* date 2023/5/27 16:13* desc*/ public class Main {public static void main(String[] args) {// 使用 Function 函数式接口进行函数组合Function<Integer, Integer> ad…

是不是因为你

在法律顾问越来越强烈的建议下&#xff0c;一周后乔布斯最终决定休病假。他在2009年1月14日给苹果员工的另一封公开信中宣布了这个消息。首先&#xff0c;他掉这个决定归咎于那些博客和媒体的窥探行为。“很不幸&#xff0c;对我个人健康的好奇不仅持续干扰着我和我的家人&…

2022世界机器人大会开幕,有屋智能主动终止IPO,《2022人工智能发展白皮书》发布,2022可穿戴设备出货量将达3.44亿台

编辑 | 小沐 出品 | 智哪儿 zhinaer.cn 1行业聚焦 ① 科技部首批支持建设十个人工智能示范应用场景 8月15日电 为加快推动人工智能应用&#xff0c;助力稳经济&#xff0c;培育新的经济增长点&#xff0c;科技部15日公布了《关于支持建设新一代人工智能示范应用场景的通知》&…

神经系统ct与mri影像解读,神经系统影像学检查

医学影像学会被人工智能取代吗&#xff1f; 近年来&#xff0c;人工智能(AI)以各种方式进入了日常生活&#xff0c;从智能手机的语言识别工具到金融交易的分析&#xff0c;到自动驾驶汽车的算法&#xff0c;以及各种棋盘游戏&#xff0c;医学影像非常有可能是不久后的一个根本…

电脑族眼睛保健知识

要善待自己眼睛&#xff0c;提供有关眼睛保健知识给大家&#xff0c;希望能对大家有所帮助&#xff01;眼睛保养七个贴士 1丶切忌“目不转睛”&#xff0c;自行注意频密并完整的眨眼动作&#xff0c;经常眨眼可减少眼球暴露于空气中的时间&#xff0c;避免泪液蒸发。    2丶…

IT一族 ,要善待自己眼睛

要善待自己眼睛&#xff0c;提供有关眼睛保健知识给大家&#xff0c;希望能对大家有所帮助&#xff01;眼睛保养七个贴士 1丶切忌“目不转睛”&#xff0c;自行注意频密并完整的眨眼动作&#xff0c;经常眨眼可减少眼球暴露于空气中的时间&#xff0c;避免泪液蒸发。    …

《老友记》典故集解 Season 1-10

第一季 第一集 Mr. Potato Head 瑞秋和众人谈到了她逃婚的原因,她说这是因为她突然发现她的未婚夫巴里医生长得活像 “薯头先生(Mr.Potato Head)”,这是在美国家喻户晓的卡通人物。如果大家看过《玩具 总动员(Toy Story)》,就会在里面发现他和他的夫人“薯头太太(Mrs.Pota…