我有一个python脚本,它读取文本列表并将其写入四个独立的文件。是否有可能只写一个文本文件,每行有关节坐标x坐标y坐标和z坐标以空格分隔?我将不胜感激任何帮助使用python分割文本
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 0 -132.644
我不能你已了解想要一个输出文件的线条看起来像,以及如何将输入文件不同。显示应该为您输入的内容。 –
请参阅我上面的编辑 – user7269405
重复,请参阅:http://stackoverflow.com/questions/41109713/split-up-a-text-file-based-on-its-contents –