python 分离obj模型文件数据

今天在分离.obj模型数据时,遇到一个问题,就是每行数据存在换行符,导致末尾添加的符号出现在下一行的行首。因此,需要先删除末尾的换行符,再添加符号。

知识点

replace(a,b) 将a替换为b,比如,replace("\n"," ") ,换行符替换为空格
obj 文件数据
1. v 顶点坐标
2. vt 纹理坐标
3. vn 顶点法向量
4. f 面,包含顶点索引,格式:v/vt/vn

#!/usr/bin/env python3
# encoding: utf-8
# coding style: pep8
# ====================================================
#   Copyright (C)2020 All rights reserved.
#
#   Author        : xxx
#   Email         : xxx@gmail.com
#   File Name     : parse_obj.py
#   Last Modified : 2020-07-10 20:02
#   Description   :
#
# ====================================================

import sys
import os
import numpy as np

objFilePath = 'particles.obj'

f_v = open("./v.txt", "w")
f_v.seek(0)
f_v.truncate()  # 清空文件

f_vt = open("./vt.txt", "w")
f_vt.seek(0)
f_vt.truncate()  # 清空文件

f_f = open("./f.txt", "w")
f_f.seek(0)
f_f.truncate()  # 清空文件

with open(objFilePath) as file:
    points = []
    while 1:
        line = file.readline()
        if not line:
            break
        strs = line.split(" ")
        if strs[0] == "v":
            tmp = strs[1]+","+strs[2]+","+strs[3].replace("\n","")+','
            f_v.write(tmp)
        if strs[0] == "vt":
            tmp = strs[1]+","+strs[2].replace("\n","")+','
            f_vt.write(tmp)
        if strs[0] =="f":
            tmp = str(int(strs[1].split("/")[0])-1)+","+str(int(strs[2].split("/")[0])-1)+","+str(int(strs[3].split("/")[0])-1)+","
            f_f.write(tmp)
参考
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值