Forum >> Principianti >> Problemi conl'iportazioni di moduli dalle librerie

Pagina: 1

Save a tutti sono nuovo del forum e sono anche un principiante nel mondo di python. Deo ammettere anche se sono molto affezionato al C++(in cui ho le basi di programmazione ad oggetti) devo dire che questo linguaggio ha delle potenzialità davvero iteressanti, ho visto un sacco di tool per qualsiasi tipo di scopo e vorrei conoscerlo meglio in futuro. Mi passereste mateiale per impare di più sul mondo pyhton soprattutto sulle basi e sul mondo del Data Science?

Sto facendo u porgrammino che mi analizza dei file .tie che è un programma per la cattura del traffico di rete, e poi analazzie questi dati che sono in CSV e li rieabora in un file xlsx per analizzare dei biflussi Sto usando come IDE pycharm e mi sta dando problemi andando a mettermi in grigio alcune parti del codice e non capisco ilmotivo quando ci clicco su mi dice "unused import statement". Penso che voglia significare che ritiene che determinate istruzioni non siano usate nel programma e quindi è inutile iportarle perchè mi fa questo?

Le funzioni che mi grigia sono queste:

from datetime import datetime
from subprocess import Popen, PIPE


Ho provato di tutto ho aggiunto ogni possibile libreria contenente le parole subprocess pyshark subprocess xlwt e datatime presente nell'elenco, ma niente non ci sono versi me le griggia sempre perchè? Come faccio la prossima volta ad evitare questo problema?




Vi metto qui tutto il programma

import subprocess
import pyshark
import xlwt

from datetime import datetime
from subprocess import Popen, PIPE

ip_tie = []

campi = ['Data', ' Protocol', 'DNS response address', 'DNS query name', 'SSL',
         'IP Source', 'IP Destination', 'IP Proto', 'TCP Source Port',
         'TCP Destination Port', 'TCP Source Port', 'Organisation', 'Reverse Host']

number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

name = ['renato']

workbook = xlwt.Workbook()

for n in name:
    for x in number:
        print('#### ANALISI FILE ' + n + str(x))
        r = 1
        sheet = workbook.add_sheet("Pacchetto" + n + str(x))
        style = xlwt.easyxf('font: bold 1')

        for c in range(0, len(campi) - 1):
            sheet.write(0, c, campic, style)
            sheet.col(c).width = 256 * 40

        file_name_tie = '/home/dario/Scrivania/retiprova1/' + n + '/' + n + str(x) + '/class' + n + str(x) + '.tie'
        file = open(file_name_tie, "r")
        righe = file.readlines()
        print('Inizio lettura .tie')

        for i in range(11, len(righe) - 1):
            riga = righe
            elem = riga.split('\t')
            ip_dest = elem2
            ip_tie.append(ip_dest)

        print('Fine lettura .tie')

        file_name_pcap = '/home/dario/Scrivania/retiprova1/' + n + '/' + n + str(x) + '/traffic.pcap'
        cap = pyshark.FileCapture(file_name_pcap, display_filter='dns')
        dati = []

        try:
            for packet in cap:
                print('###Avvio analisi pacchetto')

                try:
                    data = datatime.fromtimestamp(float(packet.frame_info.time_epoch))
                except:
                    data = ''
                try:
                    protocol = packet.frame_info.protocols
                except:
                    protocol = ''
                try:
                    dns_addr = packet.dns.a
                except:
                    dns_addr = ''
                try:
                    dns_name = packet.dns.qry_name
                except:
                    dns_name = ''
                try:
                    ssl = packet.ssl.handshake_extensions_
                except:
                    ssl = ''
                try:
                    ip_src = packet.ip.dst
                except:
                    ip_src = ''
                try:
                    ip_dst = packet.ip.dst
                except:
                    ip_dst = ''
                try:
                    ip_proto = packet.ip.proto
                except:
                    ip_proto = ''
                try:
                    src_port = packet[packet.trasport_layer]
                except:
                    src_port = ''
                try:
                    dst_port = packet[packet.trasport_layer]
                except:
                    dst_port = ''

                tot = [data, protocol, dns_addr, dns_name, ssl, ip_src, ip_dst, ip_proto, src_port, dst_port]

                for ip in ip_tie:

                    if ip == dns_addr:

                        print('IP CORRISPONDONO: Avvio whois')
                        dati_agg_whois = ''
                        dati_agg_host = ''
                        proc = subprocess.Popen(['whois', ip], stdout=subprocess.PIPE)
                        output = proc.communicate(ip) 0
                        o = output.split('\n')


                        for i in o:
                            p = i.split(':')
                            for m in p:
                                dati.append(m.lstrip().lower())
                                for i in 'org-name', 'orgname', 'person', 'netname':
                                    try:
                                        ind = dati.index(i)
                                        dati_agg_whois = dati_agg_whois + ' ' + dati[ind + 1]
                                    except:
                                        pass
                                print('Avvio analisi host')
                                proc = subprocess.Popen(['host', ip], stdout=subprocess.PIPE)
                                output = proc.communicate(ip) 0
                                o = output.split(' ')
                                dati_agg_host = o 4.replace('\n', '')
                                tot.append(dati_agg_whois)
                                tot.append(dati_agg_host)
                                break
                        print(tot)

                        for c in range(0, len(tot) - 1):
                            dato = str(totc)
                            sheet.write(r, c, dato)

                        r = r + 1

                        print('Fine analisi pacchetto #')
        except:
            print('###ERRORE')

workbook.save('Analisi.gt.tie.xlsx')





Questo è quello che visualizza nella shell quando faccio la Run:




/home/dario/Scrivania/retiprova1/provaprogetto/venv/bin/python /home/dario/Scrivania/retiprova1/provaprogetto/prova.py
#### ANALISI FILE renato1
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato2
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato3
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato4
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato5
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato6
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato7
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato8
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato9
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato10
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato11
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato12
Inizio lettura .tie
Fine lettura .tie
###ERRORE

Process finished with exit code 0


In allegato metto una foto del mio risultato in excel


--- Ultima modifica di MrGoldFinger in data 2019-09-29 14:01:18 ---

--- Ultima modifica di MrGoldFinger in data 2019-09-29 14:01:42 ---

--- Ultima modifica di MrGoldFinger in data 2019-09-29 18:45:03 ---

--- Ultima modifica di MrGoldFinger in data 2019-09-29 18:45:54 ---

--- Ultima modifica di MrGoldFinger in data 2019-09-29 18:47:28 ---
Allegati
Le grigia perché sono due importazioni inutilizzate.



Se nel codice usi la forma:

subprocess.Popen
subprocess.PIPE


non è necessario importare:

from subprocess import Popen, PIPE


è sufficiente:

import subprocess


Per quanto riguarda:

from datetime import datetime


è un modulo che non utilizzi nel programma
Ho fatto i cambiamenti che mi dicevi eliminando le parti di codice che mi dicevi ma non cambia niente comunque datetime lo uso in questa parte:



data = datetime.fromtimestamp(8)]float(packet.frame_info.time_epoch))

import subprocess
import pyshark
import xlwt



ip_tie = []

campi = ['Data', ' Protocol', 'DNS response address', 'DNS query name', 'SSL',
'IP Source', 'IP Destination', 'IP Proto', 'TCP Source Port',
'TCP Destination Port', 'TCP Source Port', 'Organisation', 'Reverse Host']

number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

name = ['renato']

workbook = xlwt.Workbook()

for n in name:
for x in number:
print('#### ANALISI FILE ' + n + str(x))
r = 1
sheet = workbook.add_sheet("Pacchetto" + n + str(x))
style = xlwt.easyxf('font: bold 1')

for c in range(0, len(campi) - 1):
sheet.write(0, c, campic, style)
sheet.col(c).width = 256 * 40

file_name_tie = '/home/dario/Scrivania/retiprova1/' + n + '/' + n + str(x) + '/class' + n + str(x) + '.tie'
file = open(file_name_tie, "r")
righe = file.readlines()
print('Inizio lettura .tie')

for i in range(11, len(righe) - 1):
riga = righe
elem = riga.split('\t')
ip_dest = elem[2]
ip_tie.append(ip_dest)

print('Fine lettura .tie')

file_name_pcap = '/home/dario/Scrivania/retiprova1/' + n + '/' + n + str(x) + '/traffic.pcap'
cap = pyshark.FileCapture(file_name_pcap, display_filter='dns')
dati = []

try:
for packet in cap:
print('###Avvio analisi pacchetto')

try:
data = datetime.fromtimestamp(float(packet.frame_info.time_epoch))
except:
data = ''
try:
protocol = packet.frame_info.protocols
except:
protocol = ''
try:
dns_addr = packet.dns.a
except:
dns_addr = ''
try:
dns_name = packet.dns.qry_name
except:
dns_name = ''
try:
ssl = packet.ssl.handshake_extensions_
except:
ssl = ''
try:
ip_src = packet.ip.dst
except:
ip_src = ''
try:
ip_dst = packet.ip.dst
except:
ip_dst = ''
try:
ip_proto = packet.ip.proto
except:
ip_proto = ''
try:
src_port = packet[packet.trasport_layer]
except:
src_port = ''
try:
dst_port = packet[packet.trasport_layer]
except:
dst_port = ''

tot = [data, protocol, dns_addr, dns_name, ssl, ip_src, ip_dst, ip_proto, src_port, dst_port]

for ip in ip_tie:

if ip == dns_addr:

print('IP CORRISPONDONO: Avvio whois')
dati_agg_whois = ''
dati_agg_host = ''
proc = subprocess.Popen(['whois', ip], stdout=subprocess.PIPE)
output = proc.communicate(ip)[0]
o = output.split('\n')


for i in o:
p = i.split(':')
for m in p:
dati.append(m.lstrip().lower())
for i in 'org-name', 'orgname', 'person', 'netname':
try:
ind = dati.index(i)
dati_agg_whois = dati_agg_whois + ' ' + dati[ind + 1]
except:
pass
print('Avvio analisi host')
proc = subprocess.Popen(['host', ip], stdout=subprocess.PIPE)
output = proc.communicate(ip)[0]
o = output.split(' ')
dati_agg_host = o[4].replace('\n', '')
tot.append(dati_agg_whois)
tot.append(dati_agg_host)
break
print(tot)

for c in range(0, len(tot) - 1):
dato = str(totc)
sheet.write(r, c, dato)

r = r + 1

print('Fine analisi pacchetto #')
except:
print('###ERRORE')

workbook.save('Analisi.gt.tie.xlsx')




Questa è la mia shell:




/home/dario/Scrivania/retiprova1/provaprogetto/venv/bin/python /home/dario/Scrivania/retiprova1/provaprogetto/prova.py
#### ANALISI FILE renato1
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato2
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato3
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato4
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato5
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato6
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato7
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato8
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato9
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato10
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato11
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato12
Inizio lettura .tie
Fine lettura .tie
###ERRORE

Process finished with exit code 0




Ti allego una foto in un cui pyshark mi dice gli errori riscontrati :




https://imgur.com/OjMNkdq




https://imgur.com/hncUTg8














Nel programma che avevi postato precedentemente avevi scritto datatime, non datetime, la riga corretta è questa:
data = datetime.fromtimestamp(float(packet.frame_info.time_epoch))


per questo non l'ho trovata.

Quindi se utilizzi datetime devi importarlo all'inizio:

from datetime import datetime








--- Ultima modifica di Tessa in data 2019-09-30 00:09:40 ---
Ho fatto le modifiche che mi dicevi ma non cambia quasi nulla



import subprocess
import pyshark
import xlwt

from datetime import datetime

ip_tie = []

campi = ['Data', ' Protocol', 'DNS response address', 'DNS query name', 'SSL',
'IP Source', 'IP Destination', 'IP Proto', 'TCP Source Port',
'TCP Destination Port', 'TCP Source Port', 'Organisation', 'Reverse Host']

number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

name = ['renato']

workbook = xlwt.Workbook()

for n in name:
for x in number:
print('#### ANALISI FILE ' + n + str(x))
r = 1
sheet = workbook.add_sheet("Pacchetto" + n + str(x))
style = xlwt.easyxf('font: bold 1')

for c in range(0, len(campi) - 1):
sheet.write(0, c, campic, style)
sheet.col(c).width = 256 * 40

file_name_tie = '/home/dario/Scrivania/retiprova1/' + n + '/' + n + str(x) + '/class' + n + str(x) + '.tie'
file = open(file_name_tie, "r")
righe = file.readlines()
print('Inizio lettura .tie')

for i in range(11, len(righe) - 1):
riga = righe
elem = riga.split('\t')
ip_dest = elem[2]
ip_tie.append(ip_dest)

print('Fine lettura .tie')

file_name_pcap = '/home/dario/Scrivania/retiprova1/' + n + '/' + n + str(x) + '/traffic.pcap'
cap = pyshark.FileCapture(file_name_pcap, display_filter='dns')
dati = []

try:
for packet in cap:
print('###Avvio analisi pacchetto')

try:
data = datetime.fromtimestamp(float(packet.frame_info.time_epoch))
except:
data = ''
try:
protocol = packet.frame_info.protocols
except:
protocol = ''
try:
dns_addr = packet.dns.a
except:
dns_addr = ''
try:
dns_name = packet.dns.qry_name
except:
dns_name = ''
try:
ssl = packet.ssl.handshake_extensions_
except:
ssl = ''
try:
ip_src = packet.ip.dst
except:
ip_src = ''
try:
ip_dst = packet.ip.dst
except:
ip_dst = ''
try:
ip_proto = packet.ip.proto
except:
ip_proto = ''
try:
src_port = packet[packet.trasport_layer]
except:
src_port = ''
try:
dst_port = packet[packet.trasport_layer]
except:
dst_port = ''

tot = [data, protocol, dns_addr, dns_name, ssl, ip_src, ip_dst, ip_proto, src_port, dst_port]

for ip in ip_tie:

if ip == dns_addr:

print('IP CORRISPONDONO: Avvio whois')
dati_agg_whois = ''
dati_agg_host = ''
proc = subprocess.Popen(['whois', ip], stdout=subprocess.PIPE)
output = proc.communicate(ip)[0]
o = output.split('\n')


for i in o:
p = i.split(':')
for m in p:
dati.append(m.lstrip().lower())
for i in 'org-name', 'orgname', 'person', 'netname':
try:
ind = dati.index(i)
dati_agg_whois = dati_agg_whois + ' ' + dati[ind + 1]
except:
pass
print('Avvio analisi host')
proc = subprocess.Popen(['host', ip], stdout=subprocess.PIPE)
output = proc.communicate(ip)[0]
o = output.split(' ')
dati_agg_host = o[4].replace('\n', '')
tot.append(dati_agg_whois)
tot.append(dati_agg_host)
break
print(tot)

for c in range(0, len(tot) - 1):
dato = str(totc)
sheet.write(r, c, dato)

r = r + 1

print('Fine analisi pacchetto #')
except:
print('###ERRORE')

workbook.save('Analisi.gt.tie.xlsx')




Questa è la shell :




/home/dario/Scrivania/retiprova1/provaprogetto/venv/bin/python /home/dario/Scrivania/retiprova1/provaprogetto/prova.py
#### ANALISI FILE renato1
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato2
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato3
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato4
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato5
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato6
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato7
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato8
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato9
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato10
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato11
Inizio lettura .tie
Fine lettura .tie
###ERRORE
#### ANALISI FILE renato12
Inizio lettura .tie
Fine lettura .tie
###ERRORE

Process finished with exit code 0




Ti metto sotto un link con le foto delle segnalazioni che mi da pycharm:

https://imgur.com/EoxFl0u

https://imgur.com/9yOP2rb




















Il problema della grigiatura delle prime righe di codice è stato risolto.
Sicuramente sono risolvibili anche gli altri.

Metti dei commenti nel codice spiegandone le varie parti e le varie funzioni perché la cosa mi sembra interessante, visto che ad una prima occhiata non ci capisco una mazza
Il problema della grigiatura delle prime righe di codice è stato risolto.
Sicuramente sono risolvibili anche gli altri.

Metti dei commenti nel codice spiegandone le varie parti e le varie funzioni perché la cosa mi sembra interessante, visto che ad una prima occhiata non ci capisco una mazza

Semmai provo a spostarlo nella sezione reti che è più adatto





Pagina: 1



Esegui il login per scrivere una risposta.