Trộn và nối các trường tương ứng trong file ListDevices.csv vào file
zbx_export_hosts.xml, cụ thể là mỗi một dòng của file ListDevices.csv điền vào
các biến ở các dòng 12, 13, 14, 17, 22 và 27 để tạo file mới có tên
zbx_export_hosts_MOI.xml
Nội dung file zbx_export_hosts.xml
Nội dung file ListDevices.csv
Nhận xét: Chúng ta thấy trong file zbx_export_hosts.xml từ dòng 11 cho
đến dòng 32 đó là cấu tạo để định nghĩa một host trong file này và cho phép
lặp lại. Nên chúng tôi đưa ra đề xuất giải quyết bài toán này là:
1. Tách file ban đầu ra làm 3 file nhỏ:
- Từ dòng đầu tiên đến dòng thứ 10 là file: zbx_export_hosts_1.xml- Từ dòng thứ 11 đến dòng thứ 32 là file: zbx_export_hosts_2.xml- Từ dòng thứ 33 đến hết file là file: zbx_export_hosts_3.xml
2. Thực hiện nối các biến tương ứng theo yêu cầu đề bài và lưu lại với tên
file mới là zbx_export_hosts_2EDIT.xml
3. Thực hiện nối 3: zbx_export_hosts_1.xml, zbx_export_hosts_2EDIT.xml,
zbx_export_hosts_3.xml thành file zbx_export_hosts_MOI.xml
Thực Hiện:
1. Tách file ban đầu ra làm 3 file nhỏ:
- Từ dòng đầu tiên đến dòng thứ 10 là file: zbx_export_hosts_1.xml- Từ dòng thứ 11 đến dòng thứ 32 là file: zbx_export_hosts_2.xml- Từ dòng thứ 33 đến hết file là file: zbx_export_hosts_3.xml
Code:
f = open("zbx_export_hosts.xml", "r")
i = 0
cont1 =[]
for pl in f: # đọc cho đến hết file
if i < 10:
with open("zbx_export_hosts_1.xml","a") as f1:
f1.write(pl)
elif i < 32:
with open("zbx_export_hosts_2.xml","a") as f2:
f2.write(pl)
else:
with open("zbx_export_hosts_3.xml","a") as f3:
f3.write(pl)
i += 1
f.close
2. Thực hiện nối các biến tương ứng theo yêu cầu đề bài và lưu lại với
tên file mới là zbx_export_hosts_2EDIT.xml
Code:
'''
định nghĩa list key_word có nội_dung/giá trị là các key word cần thay thế
Vì trong file ListDevices.csv có cột đầu tiên là No. số thứ tự không dùng trong việc thay thế
Nên thêm key No. để biến i trong vòng lặp for dễ hiểu hơn
Key No. sẽ không dùng
'''
key_word = ["No.", "host12","name13","des14","Temp17","Group22","ip_addr27"]
with open ("zbx_export_hosts_2.xml","r") as f:
noidung = f.read()
with open("ListDevices.csv","r") as fld:
fld.readline() # bỏ dòng đầu tiên
for line_dev in fld.readlines():
fiedl_dev = line_dev.split(",") # tách mỗi dòng thành 1 list
noidung_moi = noidung
for i in range(0,len(key_word),1):
# thay thế tất cả các key vào nội dung
noidung_moi = noidung_moi.replace(key_word[i], fiedl_dev[i])
# ghi file sau khi thay thế xong, give vào cuối file
with open ("zbx_export_hosts_2EDIT.xml","a") as wf:
wf.write(noidung_moi)
3. Thực hiện nối 3: zbx_export_hosts_1.xml, zbx_export_hosts_2EDIT.xml,
zbx_export_hosts_3.xml thành file zbx_export_hosts_MOI.xml
Code:
#định nghĩa list gồm tên của file cần nối vào file mới
files_list = ["zbx_export_hosts_1.xml", "zbx_export_hosts_2EDIT.xml","zbx_export_hosts_3.xml"]
with open ("zbx_export_hosts_MOI.xml","a") as wf:
for i in range(0,len(files_list),1):
with open (files_list[i],"r") as rf:
content = rf.read()
wf.write(content)
Tham khảo file sau khi nối zbx_export_hosts_MOI.xml
Xong!
No comments:
Post a Comment