/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Học Python Qua Ví Dụ #012 Bài Tập - If, For Loops (Continue & Break), While Loop / Điều Kiện IF, Vòng Lặp For (Continue & Break), Vòng Lặp While Trong Python

Yêu Cầu:
1. Đọc file show_vlan.txt và xử lý để lấy ra các trường VLAN ID, VLAN NAME  

Nội dung file show_vlan.txt:

2. Đọc file show_arp.txt và xử lý nếu:

  • Tìm thấy 10.220.88.1 thì int ra "Default gateway IP/Mac" với IP và MAC tương ứng
  • Tìm thấy 10.220.88.30 thì in ra "Arista3 IP/Mac is" với IP và MAC tương ứng

Nội dung fileshow_arp.txt:

3. Đọc file show_lldp_neighbors_detail.txt và xử lý tìm ra nội dung của System Name, và Port ID của thiết bị láng giềng.

Nội dung file show_lldp_neighbors_detail.txt:

Thực Hiện:

1.  Đọc file show_vlan.txt và xử lý để lấy ra các trường VLAN ID, VLAN NAME

Code:
from __future__ import unicode_literals, print_function
from pprint import pprint

vlan_list = []
with open("show_vlan.txt" ,"r") as f: # Mở file lên đọc và tự động đóng file 
    show_vlan = f.read()	# Gán nội dung của file vào biến show_vlan

for line in show_vlan.splitlines(): # trả về một chuỗi tương ứng là một dòng trong biến show_vlan
    '''
    Sẽ bỏ qua các dòng nếu có một trong các điều kiện của if
    '''
    if 'VLAN' in line or '-----' in line or line.startswith('  '):
        continue
    fields = line.split() # tách ra thành list nhỏ, căn cứ vào dấu khoảng trắng
    vlan_id = fields[0] # lấy trường đầu tiên
    vlan_name = fields[1] # lấy trường thứ 2
    vlan_list.append((vlan_id, vlan_name))

print()
pprint(vlan_list)
print()

Kết quả:
C:\python>python Demo.py
[('1', 'default'),
 ('400', 'blue400'),
 ('401', 'blue401'),
 ('402', 'blue402'),
 ('403', 'blue403')]
C:\python>

2. Đọc file show_arp.txt và xử lý để lấy ra các trường IP, MAC.

Code:
from __future__ import unicode_literals, print_function

with open("show_arp.txt") as f:
    show_arp = f.read()

print()
found1, found2 = (False, False) # gán found1 = false, và found2 = false
for line in show_arp.splitlines():
    if 'protocol' in line.lower(): # nếu dòng nào có chữ 'protocol' thì bỏ qua
        continue
    fields = line.split() # chuyển mỗi dòng đọc được thành list
    ip_addr = fields[1] 
    mac_addr = fields[3]
    if ip_addr == '10.220.88.1': # nếu trường thứ 2 là '10.220.88.1'
        print("Default gateway IP/Mac is: {}/{}".format(ip_addr, mac_addr)) # in địa chỉ ip và mac 
        found1 = True  
    elif ip_addr == '10.220.88.30': # nếu trường thứ 2 là '10.220.88.30'
        print("Arista3 IP/Mac is: {}/{}".format(ip_addr, mac_addr)) 
        found2 = True

    if found1 and found2: # nếu cả 2 đã tìm được thì DỪNG không cần thực hiện hết vòng for
        print("Exiting...")
        break

print()

Kết quả:
C:\python>python Demo.py

Default gateway IP/Mac is: 10.220.88.1/0062.ec29.70fe
Arista3 IP/Mac is: 10.220.88.30/5254.ab71.e119
Exiting...


C:\python>

3. Đọc file show_lldp_neighbors_detail.txt và xử lý tìm ra nội dung của System Name, và Port ID của thiết bị láng giềng.

Code:
from __future__ import unicode_literals, print_function

with open("show_lldp_neighbors_detail.txt") as f:
    show_lldp = f.read()

system_name, port_id = (None, None)  # khởi tạo biến ban đầu là rỗng cho system_name và port_id
for line in show_lldp.splitlines():
    if 'System Name: ' in line: # nếu tìm thấy thoát khỏi if
        _, system_name = line.split('System Name: ') # gán biến _ cho trường đầu tiên, gán system_name là trường thứ 2
        break
    elif 'Port id: ' in line: 
        _, port_id = line.split('Port id: ') # tương tự system_name, gán port_id cho trường thứ 2
    
    if port_id and system_name: # nếu port_id và system_name KHÁC RỖNG thì DỪNG
        break

print()
print("System Name: {}".format(system_name))
print("Port ID: {}".format(port_id))
print()

Kết quả:
C:\python>python Demo.py

System Name: twb-sf-hpsw1
Port ID: 15


C:\python>

Xong!


No comments:

Post a Comment

/*header slide*/