我是Python的新手,目前我被這段代碼困住了。 我正在撰寫一段代碼,從 "CSV "檔案中獲取兩列,并將這兩列的值與 "txt "檔案中的一行進行比較,如果條件為真,我的代碼應該列印符合條件的行。 以下是代碼:
import pandas as pd
import linecache
source = pd.read_csv('colum2.csv', delimiter=' , ')
with open('access_list.txt') as acceslists。
for line in acceslists:
particular_line = linecache.getlines(acceslists,str)
for idx_src, data_src, data_dst in source.iterrows()。
if (data_src['rule.source'] == particular_line) and (data_src['rule. destination'] == particular_line) in acceslists:
print(particular_line)
我想知道是否有人能幫助我。 請先謝謝你們。
對不起,我的朋友們,讓我試著說得更清楚。 Colum2檔案是一個CSV檔案,包含了來自ASA思科防火墻的源和目標物件組的資訊,例如:
Colum 1(Rule)是一個CSV檔案。
Colum 1(Rule.Source), Colum 2(Rule.Destination)
。NETWORK10, NETWORK11
NETWORK09, NETWORK08
等等...
第二個檔案是一個純文本檔案,包含來自ASA防火墻的日志。一個從日志檔案中提取的訪問串列的例子:
訪問串列介面
訪問串列 interface_in extended line 34 permit ip object-group NETWORK10 object-group NETWORK11 (hitcnt=69549004) 23x45b48
我的想法是,如果CSV檔案的值與TXT檔案上的2個字串值相匹配,它將為我列印這一行。
uj5u.com熱心網友回復:
import csv
lines_from_file =[]
lines_from_csv =[] 。
with open('in'/span>,'r'/span>) as fp:
filecontents = fp.read()
lines_from_file= filecontents.splitlines()
with open('csvfile'/span>,'r'/span>) as csvreader:
csvreader = csv.reader(csvreader)
count=0
for row in csvreader:
print(row[0],lines_from_file[count] )
#if條件可以放在這里,如果row[0]== lines_from_file[count]:
count =1。
如果csv檔案的行數與檔案的行數相同,這段代碼將并排列印檔案的行和行。相反,你可以對它們進行比較。行的索引可以是你希望比較的列的索引。
uj5u.com熱心網友回復:
也許你可以試試這個,
import pandas as pd
import linecache
source = pd.read_csv('colum2.csv', delimiter=',', header=None)
#data loaded from csv[/span]。
display(source)
#dataframe轉換為串列。
df_list = source.values.tolist()
print('Data from column2.csv')
print(df_list)
with open('access_list.txt') as acceslists。
access_list=[line.rstrip('
') for line in acceslists ]
#顯示訪問串列。
print('Access_list.txt的訪問串列')
print(access_list)
for row in df_list:
#print(','.join(row))。
for row_access in access_list:
#print(row_access)
if (', '.join(row)==row_access):
print('match found -'/span> row_access)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/327676.html
標籤:

