python lit et écrit txt

Le script suivant implique des opérations de lecture et d'écriture txt python. Il convient de noter que le contenu à écrire lors de l'écriture de données dans le texte doit être au format str. Int, float et autres formats signaleront des erreurs.

#-*- coding: UTF-8 -*-
 
# from PIL import Image
import os
 
 
def get_filelist(path):
    Filelist = []
    for home, dirs, files in os.walk(path):
        for filename in files:
            # 文件名列表,包含完整路径
            if "txt" in filename:
                Filelist.append(os.path.join(home, filename))
            # # 文件名列表,只包含文件名
            # Filelist.append( filename)
 
    return Filelist
 
 
if __name__ == "__main__":
    filePath = './images'
    # 指定保存的文件夹
    outputPath = './imgs_rotate'
    # 获得文件夹下所有文件
    # filePath = './imgs/' # 只能获取当前路径下的文件,不能递归
    # filenames = os.listdir(filePath)
    Filelist = get_filelist(filePath)
    print(len(Filelist))
    # 迭代所有图片
    for filename in Filelist:
        print(filename)
        # 读取图像 标签
        # im = Image.open(filename)
        f = open(filename, encoding='utf-8')
        label = 0
        c_x = 0
        c_y = 0
        width = 0
        height = 0
        for line in f.readlines():
            print(line)
            data = line.replace('\n', '')
            substr = data.split()
            label = substr[0]
            c_x = substr[1]
            c_y = substr[2]
            width = substr[3]
            height = substr[4]
        f.close()
        # 指定逆时针旋转的角度
        # # 逆时针旋转90°
        # tmp = c_x
        # c_x = c_y
        # c_y = str(1 - float(tmp))
        # tmp = width
        # width = height
        # height = tmp
        # line_info = [label, ' ', c_x, ' ',  c_y, ' ', width, ' ', height, '\n']

        # # 逆时针旋转180°
        # c_x = str(1 - float(c_x))
        # c_y = str(1 - float(c_y))
        # line_info = [label, ' ', c_x, ' ', c_y, ' ', width, ' ', height, '\n']
        # 逆时针旋转270°
        tmp = c_x
        c_x = str(1 - float(c_y))
        c_y = tmp
        tmp = width
        width = height
        height = tmp
        line_info = [label, ' ', c_x, ' ', c_y, ' ', width, ' ', height, '\n']
        # 保存
        output_path = filename.replace(filePath, outputPath)
        outputdir = output_path.rsplit('\\', 1)[0]
        if not os.path.exists(outputdir):
            os.mkdir(outputdir)
        file_lineinfo = open(output_path, 'w', encoding='utf-8')
        file_lineinfo.writelines(line_info)
        file_lineinfo.close()

 

 

 

Je suppose que tu aimes

Origine blog.csdn.net/juluwangriyue/article/details/108754908
conseillé
Classement