python3将seq格式的数据集转成jpg格式

# -*- coding:utf-8 -*-
import os.path
import fnmatch
import shutil


def open_save(file, savepath):
    # 读入一个seq文件,然后拆分成image存入savepath当中
    f = open(file, 'rb')
    # 将seq文件的内容转化成str类型
    string = f.read().decode('latin-1')

    # splitstring是图片的前缀,可以理解成seq是以splitstring为分隔的多个jpg合成的文件
    splitstring = "\xFF\xD8\xFF\xE0\x00\x10\x4A\x46\x49\x46"
    # split函数做一个测试,因此返回结果的第一个是在seq文件中是空,因此后面省略掉第一个
    """
    >>> a = ".12121.3223.4343"
    >>> a.split('.')
    ['', '12121', '3223', '4343']
    """
    strlist = string.split(splitstring)
    # print(strlist)
    # print('######################################')
    f.close()
    count = 0
    # delete the image folder path if it exists
    if os.path.exists(savepath):
        shutil.rmtree(savepath)
        # create the image folder path
    if not os.path.exists(savepath):
        os.makedirs(savepath)
    # 遍历每一个jpg文件内容,然后加上前缀合成图片
    for img in strlist:
        filename = str(count) + '.jpg'
        filenamewithpath = os.path.join(savepath, filename)
        if count > 0:
            i = open(filenamewithpath, 'wb+')
            i.write(splitstring.encode('latin-1'))
            i.write(img.encode('latin-1'))
            i.close()
        count = count + 1


if __name__ == "__main__":
    rootdir = "F:/data/image"
    saveroot = "F:/data/jpg"

    for parent, dirnames, filenames in os.walk(rootdir):
        for filename in filenames:
            if fnmatch.fnmatch(filename, '*.seq'):
                thefilename = os.path.join(parent, filename)
                thesavepath = saveroot + '/' + parent.split('/')[-1] + '/' + filename.split('.')[0] + '/'
                print("Filename=" + thefilename)
                print("Savepath=" + thesavepath)
                open_save(thefilename, thesavepath)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 如果您想把 Python 中的序列从 object 类型转换成 date 类型,可以使用 pandas 库中的 to_datetime 函数。 首先需要安装 pandas 库,如果您没有安装过,可以使用以下命令安装: ``` pip install pandas ``` 然后您可以在代码中导入 pandas 库,并使用 to_datetime 函数进行转换,代码如下: ``` import pandas as pd dates = ['2022-01-01', '2022-01-02', '2022-01-03'] dates = pd.to_datetime(dates) print(dates) ``` 输出: ``` [datetime.datetime(2022, 1, 1, 0, 0), datetime.datetime(2022, 1, 2, 0, 0), datetime.datetime(2022, 1, 3, 0, 0)] ``` 您也可以通过设置 `format` 参数,来指定输入数据的格式: ``` import pandas as pd dates = ['2022-01-01', '2022-01-02', '2022-01-03'] dates = pd.to_datetime(dates, format='%Y-%m-%d') print(dates) ``` 输出: ``` [datetime.datetime(2022, 1, 1, 0, 0), datetime.datetime(2022, 1, 2, 0, 0), datetime.datetime(2022, 1, 3, 0, 0)] ``` ### 回答2: 在Python中,我们可以使用datetime模块中的datetime类将序列格式由"object"转换为"date"。 首先,导入datetime模块: import datetime 接下来,假设我们有一个序列对象seq,其中存储了日期和时间的信息。要将其转换为date格式,我们可以使用datetime类的date()方法。 例如,假设我们有一个包含年、月和日的序列对象seqseq = datetime.datetime(year=2022, month=1, day=1) 要将其转换为date格式,我们可以使用date()方法: date_seq = seq.date() 此时,date_seq将是一个date对象,它只包含年、月和日的信息,不包含时间信息。 注意,date对象是不可变的,这意味着我们无法修改其中的年、月或日,只能通过创建新的date对象来实现。 此外,如果序列对象中还包含时间信息,并且我们只想保留日期信息,可以使用date()方法来转换。 总结起来,使用datetime模块中的datetime类的date()方法,我们可以将序列的格式由"object"转换为"date",并只保留日期信息。 ### 回答3: 在Python中,要将序列的格式从object转换为date,可以使用datetime模块中的datetime类。datetime类提供了用于处理日期和时间的功能。 首先,需要导入datetime模块: import datetime 然后,使用datetime类将对象转换为日期: date_object = datetime.date.fromordinal(object.toordinal()) 这里,object是原始对象,可以是一个datetime对象、time对象或者其他具有toordinal()方法的对象。通过调用toordinal()方法,我们可以将object对象转换为一个整数,表示自公元1年1月1日以来的天数。 接下来,使用fromordinal()方法,将整数转换为日期。这会创建一个新的日期对象date_object。 举个例子,假设有一个datetime对象dt: dt = datetime.datetime(2022, 1, 1) 现在,我们将dt的格式从datetime对象转换为日期: dt_date = datetime.date.fromordinal(dt.toordinal()) 最终,dt_date将是一个日期对象,表示2022年1月1日。 综上所述,通过使用datetime模块中的datetime类,可以实现将序列的格式从object转换为date的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值