分享argparse使用案例
鹿鼎记肯定 发布于2020-12-02 08:16 浏览:734 回复:30
0
收藏

网上很多写的感觉不是很好,不经意间在PaddleOCR中发现一个不错的案例,特地拿来分享一下:

import os
import argparse
import json


def gen_rec_label(input_path, out_label):
    with open(out_label, 'w') as out_file:
        with open(input_path, 'r') as f:
            for line in f.readlines():
                tmp = line.strip('\n').replace(" ", "").split(',')
                img_path, label = tmp[0], tmp[1]
                label = label.replace("\"", "")
                out_file.write(img_path + '\t' + label + '\n')


def gen_det_label(root_path, input_dir, out_label):
    with open(out_label, 'w') as out_file:
        for label_file in os.listdir(input_dir):
            img_path = root_path + label_file[3:-4] + ".jpg"
            label = []
            with open(os.path.join(input_dir, label_file), 'r') as f:
                for line in f.readlines():
                    tmp = line.strip("\n\r").replace("\xef\xbb\xbf",
                                                     "").split(',')
                    points = tmp[:8]
                    s = []
                    for i in range(0, len(points), 2):
                        b = points[i:i + 2]
                        b = [int(t) for t in b]
                        s.append(b)
                    result = {"transcription": tmp[8], "points": s}
                    label.append(result)

            out_file.write(img_path + '\t' + json.dumps(
                label, ensure_ascii=False) + '\n')


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--mode',
        type=str,
        default="rec",
        help='Generate rec_label or det_label, can be set rec or det')
    parser.add_argument(
        '--root_path',
        type=str,
        default=".",
        help='The root directory of images.Only takes effect when mode=det ')
    parser.add_argument(
        '--input_path',
        type=str,
        default=".",
        help='Input_label or input path to be converted')
    parser.add_argument(
        '--output_label',
        type=str,
        default="out_label.txt",
        help='Output file name')

    args = parser.parse_args()
    if args.mode == "rec":
        print("Generate rec label")
        gen_rec_label(args.input_path, args.output_label)
    elif args.mode == "det":
        gen_det_label(args.root_path, args.input_path, args.output_label)
收藏
点赞
0
个赞
共30条回复 最后由doubi渣渣回复于2020-12-21 23:30
#31doubi渣渣回复于2020-12-21 23:30:31
#29 JavaRoom回复
我要抄抄抄

这个不用抄吧……

0
#30189******30回复于2020-12-21 11:33:43
#23 doubi渣渣回复
来了来了,百人血书语法高亮【滑稽】 3/100

说不定哪天就悄悄的更新了

0
#29JavaRoom回复于2020-12-19 23:24:29

我要抄抄抄

0
#28鹿鼎记肯定回复于2020-12-08 08:26:08
#27 doubi渣渣回复
太惨了,平均3天一个人

去群里捞一捞~

0
#27doubi渣渣回复于2020-12-07 22:48:06
#26 鹿鼎记肯定回复
慢了半拍 = =

太惨了,平均3天一个人

0
#26鹿鼎记肯定回复于2020-12-07 19:29:53
#25 doubi渣渣回复
我知道啊,这不是加了楼下吗

慢了半拍 = =

0
#25doubi渣渣回复于2020-12-07 11:19:25
#24 鹿鼎记肯定回复
姐 我那两人中有你了,哈哈哈

我知道啊,这不是加了楼下吗

0
#24鹿鼎记肯定回复于2020-12-06 22:46:35
#23 doubi渣渣回复
来了来了,百人血书语法高亮【滑稽】 3/100

姐 我那两人中有你了,哈哈哈

0
#23doubi渣渣回复于2020-12-04 23:04:30
#21 yugiohskyhigh回复
现在都用什么,比较好奇

来了来了,百人血书语法高亮【滑稽】

3/100

0
#22yugiohskyhigh回复于2020-12-04 17:16:15

其实也可以使用argparse中group的语法

0
#21yugiohskyhigh回复于2020-12-04 17:11:33
#8 西南交大开源回复
现在都不用argparse了  有更好的

现在都用什么,比较好奇

0
#20rose20135188回复于2020-12-04 11:34:51

果断收藏了。谢谢分享。

0
#19189******30回复于2020-12-04 10:50:13
#11 鹿鼎记肯定回复
可以用PyQT做一个,,我前段时间那个截屏识别就是[图片]

以前生嫖mfc惯了~~

以后得注意版权,pyqt也差不太多

0
#18189******30回复于2020-12-04 10:49:00
#11 鹿鼎记肯定回复
可以用PyQT做一个,,我前段时间那个截屏识别就是[图片]

就是不想自己做才。。。

0
#17189******30回复于2020-12-04 10:48:13
#10 鹿鼎记肯定回复
不用狗头,百人血书语法高亮【滑稽】 2/100

番茄酱行不~

我用插件,看不出效果了。。。

0
#16189******30回复于2020-12-04 10:46:59
#8 西南交大开源回复
现在都不用argparse了  有更好的

什么包?

0
#15doubi渣渣回复于2020-12-03 23:46:31
#14 鹿鼎记肯定回复
你发现没现在兑换贴官方都没有传送门了

给我们每月发帖的机会/狗头

0
#14鹿鼎记肯定回复于2020-12-03 21:59:20
#12 doubi渣渣回复
这个有点难,每月兑换贴都不一定有百人/狗头

你发现没现在兑换贴官方都没有传送门了

0
#13周小鱼whoyou回复于2020-12-03 00:21:38

谢谢分享

0
#12doubi渣渣回复于2020-12-02 21:05:46
#10 鹿鼎记肯定回复
不用狗头,百人血书语法高亮【滑稽】 2/100

这个有点难,每月兑换贴都不一定有百人/狗头

0
TOP
切换版块