Python CSV输出到多列而不是一列
所以我发现它给了我现在正在使用的代码。Python CSV输出到多列而不是一列,python,csv,nmap,Python,Csv,Nmap,所以我发现它给了我现在正在使用的代码。def所在的最后几行代码 但是生成的csv文件在一列中包含所有数据。有没有办法强迫它将每个数据集放在自己的列中?还是我应该坚持在事后使用Excel进行分离 我正在“打印”的数据格式如下;我相信这是一对钥匙。 ”主机;主机名;主机名类型;协议港口;名称国家;产品;外部信息;理性;版本形态;cpe' … import sys import os import nmap from datetime import datetime import time impor
def
所在的最后几行代码
但是生成的csv文件在一列中包含所有数据。有没有办法强迫它将每个数据集放在自己的列中?还是我应该坚持在事后使用Excel进行分离
我正在“打印”的数据格式如下;我相信这是一对钥匙。
”主机;主机名;主机名类型;协议港口;名称国家;产品;外部信息;理性;版本形态;cpe'
…
import sys
import os
import nmap
from datetime import datetime
import time
import csv
#Ask for user input and assign IP\subnet and port range.
print("_" * 40) #style options
ip_range = '192.168.3.132' #str(input('\nEnter an IP or subnet: '))
user_ports = '100-200' #str(input('\nEnter Ports to scan: '))
print("\nScanning IP " + ip_range + ". For ports " + user_ports + ".")
#add banner containing time stamps.
before = datetime.now()
print("_" * 40) #style options
print("\nScanning Target "+ip_range)
print('\n') #style options
print("Time Started: "+ str(datetime.now().strftime('%m-%d-%Y %H:%M:%S'))+'\n')
print("~" * 40)#style options
print('\n')#style options
#name scan configuration
nmap_scan = nmap.PortScanner()
nmap_scan.scan(str(ip_range), str(user_ports))
#printing out ports that are up
for host in nmap_scan.all_hosts():
print("Host: %s (%s)" % (host, nmap_scan[host].hostname()))
print("state: %s" % nmap_scan[host].state())
for proto in nmap_scan[host].all_protocols():
print("\n")
print("Protocol used: %s" % proto)
lport = sorted(nmap_scan[host][proto].keys())
for port in lport:
print("Port: %s\tState: %s" % (port, nmap_scan[host][proto][port]['state']))
print('\n')#style options
#export nmap scan to csv file
#export nmap scan to csv file
def save_csv_data(nmap_scan_csv, path='.'):
with open(path + '/output.csv', 'w') as output:
output.write(nmap_scan_csv)
if (len(sys.argv) > 1 and sys.argv[1]):
save_csv_data(nmap_scan.csv(), path=sys.argv[1])
else:
save_csv_data(nmap_scan.csv())
print("_" * 50)#style options
print('\n\n')#style options
#Finished time
after = datetime.now()
print("Time finished: "+ str(datetime.now().strftime('%m-%d-%Y %H:%M:%S')))
#time elapsed during scan
print('\n')#style options
delta = after-before
print("Time elapsed: " + str(delta))
''请包含一个。您的数据看起来像是用
分隔的代码>请确保使用此分隔符作为csv分隔符,而不是默认的,
我已经尝试了很多方法来确定如何将分隔符指定为“;”。有什么建议吗?nm.csv()
看起来像什么?你有吗?192.168.1.5;computer.contoso.com;PTR;tcp;135;msrpc;打开微软视窗RPC;;同步确认;;10;cpe:/o:microsoft:windows
这是excel当前输出到1个单元格中的内容。它还输出头主机;主机名;主机名类型;协议港口;名称国家;产品;外部信息;理性;版本形态;cpe
。我可以发布整个代码,但您需要安装nmap。我应该发布所有代码吗?