How To Convert A .txt To .xml In Python
Solution 1:
Here is a better method of splitting the lines.
Notice that the text
variable would technically be your .txt
file, and that I purposely modified it so that we have a greater context of the output.
from collections import OrderedDict
from pprint import pprint
# Text would be our loaded .txt file.
text = """Serial Number: test Operator ID: test1 Time: 00:03:47 Test Step 1 TP1: 17.25 TP2: 2.46
Serial Number: Operator ID: test2 Time: 00:03:48 Test Step 2 TP1: 17.24 TP2: 2.47"""# Headers of the intended break-points in the text files.
headers = ["Serial Number:", "Operator ID:", "Time:", "TP1:", "TP2:"]
information = []
# Split our text by lines.for line in text.split("\n"):
# Split our text up so we only have the information per header.
default_header = headers[0]
for header in headers[1:]:
line = line.replace(header, default_header)
info = [i.strip() for i in line.split(default_header)][1:]
# Compile our header+information together into OrderedDict's.
compiled_information = OrderedDict()
for header, info inzip(headers, info):
compiled_information[header] = info
# Append to our overall information list.
information.append(compiled_information)
# Pretty print the information (not needed, only for better display of data.)
pprint(information)
Outputs:
[OrderedDict([('Serial Number:', 'test'),
('Operator ID:', 'test1'),
('Time:', '00:03:47 Test Step 1'),
('TP1:', '17.25'),
('TP2:', '2.46')]),
OrderedDict([('Serial Number:', ''),
('Operator ID:', 'test2'),
('Time:', '00:03:48 Test Step 2'),
('TP1:', '17.24'),
('TP2:', '2.47')])]
This method should generalize better than what you are currently writing, and the idea of the code is something I've had saved from another project. I recommend you going through the code and understanding its logic.
From here you should be able to loop through the information
list and create your custom .xml
file. I would recommend you checking out dicttoxml
as well, as it might make your life much easier on the final step.
In regards to your code, remember: breaking down fundamental tasks is easier than trying to incorporate them all into one. By trying to create the xml
file while you split your txt
file you've created a monster that is hard to tackle when it revolts back with bugs. Instead, take it one step at a time -- create "checkpoints" that you are 100% certain work, and then move on to the next task.
Post a Comment for "How To Convert A .txt To .xml In Python"