【发布时间】:2016-12-13 00:58:25
【问题描述】:
我有一个 python 脚本,它读取文本列表并将其写入四个单独的文件。是否可以只编写一个文本文件,其中每一行的关节坐标 x 坐标 y 坐标和 z 坐标用空格分隔?我将不胜感激任何帮助
import os
os.chdir('/Users/JP/DevEnv/ASA')
import re
# regex to extract data line
r = re.compile(r"\s*(\d+)\s+X=(\S+)\s+Y=(\S+)\s+Z=(\S+)")
a="""SYSTEM
DOF=UY,UZ,RX LENGTH=FT FORCE=Kip
JOINT
1 X=0 Y=-132.644 Z=0
2 X=0 Y=-80 Z=0
3 X=0 Y=-40 Z=0
4 X=0 Y=0 Z=0
5 X=0 Y=40 Z=0
6 X=0 Y=80 Z=0
7 X=0 Y=132.644 Z=0""".splitlines().__iter__()
# open all 4 files with a meaningful name
files=[open("file_{}.txt".format(x),"w") for x in ["J","X","Y","Z"]]
for line in a:
m = r.match(line)
if m:
# line matches: write in all 4 files (using zip to avoid doing
# it one by one)
for f,v in zip(files,m.groups()):
f.write(v+"\n")
# close all output files now that it's done
for f in files:
f.close()
输出文本文件的第一行如下所示: 1 0 -132.644 0
【问题讨论】:
-
我无法理解您希望单个输出文件的行看起来像什么,以及它与输入文件的不同之处。显示您提供的输入应该是什么。
-
请看我上面的编辑
-
这是我之前的问题,但现在我正在尝试做一些不同的事情......