我正在尝试处理一个 CSV 文件并提取主机名并将提取保存到一个名为的文件中host_file1,然后将此文件与现有的文本文件进行比较,即host_file2,因此 csv 处理工作正常。
现在,正如我所说,我想在两个文件之间进行一些主机名比较,我想要的是将主机名host_file2与匹配host_file1,因此如果主机名在host_file2但不在host_file1打印主机名中,请不要打印两者中的主机名文件。
我已经尝试过类似下面的设置,但它只是给出了我想要的不同。
#!/python/v3.6.1/bin/python3
from __future__ import print_function
from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE,SIG_DFL)
import pandas as pd
##### Python pandas, widen output display to see more columns. ####
pd.set_option('display.height', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('expand_frame_repr', True)
##################### END OF THE Display Settings ###################
df_csv = pd.read_csv(input("Please input the CSV File Name: "), usecols=['Platform ID', 'Target system address']).dropna()
hostData = df_csv[df_csv['Platform ID'].str.startswith("CDS-Unix")]['Target system address']
hostData.to_csv('host_file1', header=None, index=None, sep=' ', mode='a')
with open('host_file1', 'r') as f:
dataset1 = set(f)
with open('host_file2', 'r') as f:
dataset2 = set(f)
for i, item in enumerate(sorted(dataset1 ^ dataset2)):
print(str(item))
# shorter
"""
with open('host_file1') as f1, open('host_file2') as f2:
dataset1 = set(f1)
dataset2 = set(f2)
"""
两个不同的主机名文件:
主机文件1
vmhost01
vmhost02
vmhost03
vmhost04
vmhost05
vmhost06
vmhost07
vmhost08
vmhost09
vmhost10
主机文件2
vmhost01
vmhost02
vmhost03
vmhost04
vmhost05
vmserver01
vmhost07
vmhost08
vmserver02
vmhost10
想要的结果:
vmserver01
vmserver02
白衣染霜花
相关分类