[Tutor PyCZ] os.system a cesta s mezerou

Petr Prikryl PrikrylP na skil.cz
Úterý Květen 23 14:17:50 CEST 2006


dam
> chci vyvolat pomoci os.system() program, jehoz cesta ma v 
> nazvu mezeru.
> Bohuzel dostavam chybu ze "c:\Program" neni jmeno programu a koncim.
> Pokousel jsem se to nejak obejit za pomoci uvozovek, ale nedari se...

Našel jsem nějakou diskusi k tomuto problému.
Dotaz:
http://mail.python.org/pipermail/python-list/2005-December/313558.html
 
... a hřebíček uhozený na hlavičku: 
http://mail.python.org/pipermail/python-list/2005-December/313598.html

Praktický dopad je takový -- obalit celý zkonstruovaný příkaz
ještě jedněmi uvozovkami.

a.py
======================================================
import os

prog = r'"C:\program Files\adobe\acrobat 7.0\reader\acroRd32.exe"'
arg = r'"C:\program Files\adobe\acrobat 7.0\Help\CZE\reader.pdf"'
cmd = '"' + prog + ' ' + arg + '"'
print 'prog:', prog
print 'arg:', arg
print 'cmd:', cmd
os.system(cmd)
print
======================================================

Vinen je windowsowský cmd.exe, který se snaží být moc 
chytrý kvůli zpětné kompatibilitě s command.com. Asi 
to nebude fungovat pod Windows 95/98, kde se používá
command.com.

pepr



Další informace o konferenci Tutor