취약점 이름, 취약성 수준 및 취약점이있는 IP 주소를 표시하는 취약성 제목, 취약성 심각도 수준, 자산 IP 주소 의 세 가지 필드가있는 다음 CSV 파일이 있습니다. 취약점은 열 심각도 옆에 과 그 취약점이있는 IP 주소의 마지막 열 목록에 나열된 보고서를 인쇄하려고합니다.Python을 사용하여 CSV 구문 분석
Vulnerability Title Vulnerability Severity Level Asset IP Address
TLS/SSL Server Supports RC4 Cipher Algorithms (CVE-2013-2566) 4 10.103.64.10
TLS/SSL Server Supports RC4 Cipher Algorithms (CVE-2013-2566) 4 10.103.64.10
TLS/SSL Server Supports RC4 Cipher Algorithms (CVE-2013-2566) 4 10.103.65.10
TLS/SSL Server Supports RC4 Cipher Algorithms (CVE-2013-2566) 4 10.103.65.164
TLS/SSL Server Supports RC4 Cipher Algorithms (CVE-2013-2566) 4 10.103.64.10
TLS/SSL Server Supports RC4 Cipher Algorithms (CVE-2013-2566) 4 10.10.30.81
TLS/SSL Server Supports RC4 Cipher Algorithms (CVE-2013-2566) 4 10.10.30.81
TLS/SSL Server Supports RC4 Cipher Algorithms (CVE-2013-2566) 4 10.10.50.82
TLS/SSL Server Supports Weak Cipher Algorithms 6 10.103.65.164
Weak Cryptographic Key 3 10.103.64.10
Unencrypted Telnet Service Available 4 10.10.30.81
Unencrypted Telnet Service Available 4 10.10.50.82
TLS/SSL Server Supports Anonymous Cipher Suites with no Key Authentication 6 10.103.65.164
TLS/SSL Server Supports The Use of Static Key Ciphers 3 10.103.64.10
TLS/SSL Server Supports The Use of Static Key Ciphers 3 10.103.65.10
TLS/SSL Server Supports The Use of Static Key Ciphers 3 10.103.65.100
TLS/SSL Server Supports The Use of Static Key Ciphers 3 10.103.65.164
TLS/SSL Server Supports The Use of Static Key Ciphers 3 10.103.65.164
TLS/SSL Server Supports The Use of Static Key Ciphers 3 10.103.64.10
TLS/SSL Server Supports The Use of Static Key Ciphers 3 10.10.30.81
내가 취약점을 모두 IP 주소를 포함하는 것 취약점 심각도 수준과 마지막 탭라는 두 번째 탭을 키로 취약점 제목 탭을 사용하여 생성하는 CSV 파일을 다시하고 싶은
import csv
from pprint import pprint
from collections import defaultdict
import glob
x= glob.glob("/root/*.csv")
d = defaultdict()
n = defaultdict()
for items in x:
with open(items, 'rb') as f:
reader = csv.DictReader(f, delimiter=',')
for row in reader:
a = row["Vulnerability Title"]
b = row["Vulnerability Severity Level"], row["Asset IP Address"]
c = row["Asset IP Address"]
# d = row["Vulnerability Proof"]
d.setdefault(a, []).append(b)
f.close()
pprint(d)
with open('results/ipaddress.csv', 'wb') as csv_file:
writer = csv.writer(csv_file)
for key, value in d.items():
for x,y in value:
n.setdefault(y, []).append(x)
# print x
writer.writerow([key,n])
with open('results/ipaddress2.csv', 'wb') as csv2_file:
writer = csv.writer(csv2_file)
for key, value in d.items():
n.setdefault(value, []).append(key)
writer.writerow([key,n])
아주 잘 설명 할 수 없기 때문에.
솔루션의Car model owner
Honda Blue James
Toyota Blue Tom
Chevy Green James,Tom
모두가 올바른지 : 나를
을 단순화 해보자 것은 내가 나는 다음과 같은이 CSV를 만들려고하고있는 다음 CSV
Car model owner
Honda Blue James
Toyota Blue Tom
Chevy Green James
Chevy Green Tom
이 있다고 할 수 있습니다. 여기뿐만 아니라
import csv
import pandas as pd
df = pd.read_csv('test.csv', names=['Vulnerability Title', 'Vulnerability Severity Level','Asset IP Address'])
#print df
grouped = df.groupby(['Vulnerability Title','Vulnerability Severity Level'])
groups = grouped.groups
#print groups
new_data = [k + (v['Asset IP Address'].tolist(),) for k, v in grouped]
new_df = pd.DataFrame(new_data, columns=['Vulnerability Title' ,'Vulnerability Severity Level', 'Asset IP Address'])
print new_df
new_df.to_csv('final.csv')
는 당신에게 당신의 차의 예를 고려
예를 들어, 생성하려고하는 최종 CSV의 구조를 알려주시겠습니까? 그게 정말 도움이 될거야 –
고맙습니다. 더 자세한 내용으로 질문을 편집 했습니까? 더 많은 정보를 추가해야하는지 알려주세요. –
당신은 환영합니다, 특히 마지막 편집은 중대합니다. 감사. –