Portál AbcLinuxu, 12. května 2025 07:08

Dotaz: Python a získání výstupu z os.system()

27.1.2007 13:34 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
Python a získání výstupu z os.system()
Přečteno: 503×
Odpovědět | Admin
Nevím si rady jak získat ze spuštěného externího programu výstup. Třeba když napíšu:

os.system("dir")

tak potřebuju do proměnné uložit to, co mi spuštěný program vypsal. Poradí někdo?
Nástroje: Začni sledovat (4) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Chloop avatar 27.1.2007 14:49 Chloop | skóre: 14 | blog: Chlupi_blog
Rozbalit Rozbalit vše Re: Python a získání výstupu z os.system()
Odpovědět | | Sbalit | Link | Blokovat | Admin
os.popen() aneb každý má svou rourku. :-)
All we need: "Peace, Love & Linux"
27.1.2007 19:52 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: Python a získání výstupu z os.system()
Odpovědět | | Sbalit | Link | Blokovat | Admin
ahoj,
pozri sa na modul commands (konkretne funkcia getoutput() )
27.1.2007 20:15 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Python a získání výstupu z os.system()
Odpovědět | | Sbalit | Link | Blokovat | Admin
os.system
os.spawn*
os.popen*
popen2.*
commands.*
jsou zastaralé a jejich funcionalitu nahrazuje (a doplňuje) modul subprocess. Takže výstup z příkazu 'ls' by se dal získat například takto:
#!/usr/bin/env python
import subprocess

dir = subprocess.Popen('dir', stdout=subprocess.PIPE)
for line in dir.stdout:
    print line,
ale pokud má být cílem získat seznam položek v adresáři, tak na to je daleko lepší použít funkci os.listdir():
#!/usr/bin/env python
import os
for item in os.listdir('.'):
    print item
27.1.2007 20:19 pepik | skóre: 16 | blog: nevim | Chlumec nad Cidlinou
Rozbalit Rozbalit vše Re: Python a získání výstupu z os.system()
Děkuji za rady.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.