Ich versuche, eine Funktion get_ethname
in eine andere Funktion get_ethSpeed
aufrufen, aber ich kann nicht verstehen, wie es aufgerufen wird.So rufen Sie eine Funktion in eine andere Funktion in Python 2.6
Vielen Dank für Ihre Eingaben in Advanced.
The output of the first function returns the name of the NIC interface on the system as below..
[[email protected]/]# cat intDetail1.py
#!/usr/bin/python
import ethtool
def get_ethname():
inames = ethtool.get_devices()
inameCurr = inames[1]
print inameCurr
return inameCurr
def main():
get_ethname()
main()
[[email protected] /]# ./intDetail1.py
eth0
Below is the main code where i'm trying to call it.
#!/usr/bin/python
import ethtool
import subprocess
def get_ethname():
inames = ethtool.get_devices()
inameCurr = inames[1]
print inameCurr
return inameCurr
def get_ethSpeed():
spd = subprocess.popen("['ethtool', 'get_ethname']", stdout=subprocess.PIPE).communicate()[0]
print spd
return spd
def main():
get_ethname()
get_ethSpeed()
main()
When i run the above code it gives the below error .
File "/usr/lib64/python2.6/subprocess.py", line 1234, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
ist mein Ziel, auf den Systemen zur Hauptlauf Interface-Namen bekommen und und erhalten dann die Geschwindigkeit unter Verwendung von Linux-System-Utility des NIC bestimmt ethtool
welches die Geschwindigkeit des Interfaces angibt:
[[email protected] /]# /sbin/ethtool eth0| grep Speed
Speed: 1000Mb/s
Output look of
ethtool eth0
is Below:
[[email protected] /]# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: g
Wake-on: g
Link detected: yes
Wie lauten die Dateinamen und ihre Baumstruktur/Beziehung? –
'popen' benötigt eine Liste von Argumenten. Sie haben stattdessen eine Zeichenfolge angegeben. Entfernen Sie die Anführungszeichen und es sollte in Ordnung sein. Außerdem wird 'python2.6' nicht mehr unterstützt. Sie sollten lieber früher als später zu 'python2.7' oder besser' python3' wechseln. –
@DaniSpringer, Sorry, ich konnte deine Frage nicht genau beantworten. Ich versuche nur, das 'eth0' mit' ethtool'-Befehl zu erhalten, was der Linux-Systembefehl ist, also, dass die zweite Funktion die Ausgabe von '/ sbin/ethtool eth0' ausgeben muss. Im Code werden keine Dateien aufgerufen. – krock1516