Neznáte někdo hezčí řešení, které by otestovalo
zda je vložena disketa čistějším způsobem,
bez volání dos-ového dir-u
(a bez vyskakování windows message okna "Chybí disk")?
dos_cmd='dir /s '+ fi_arch
check_file=os.popen(dos_cmd)
line = check_file.readline()
if not line:
print u"Jednotka není připravena"
Jen mne zajímá zda jsem něco neopomenul.
Díky, ZU
To ten "dir" je lepší, bohužel.
Ale děkuji za reakci!
ZU
Marek Palatinus napsal(a):
> Pokud si dobre pamatuji (a diskety jsem nevidel uz mnoho, mnoho let),
> tak disketova mechanika nema zadnou detekci pritomnosti media (na rozdil
> od CDROM). Tj. muzete proste zkusit nejakou diskovou operaci a bud se
> povede nebo ne.
>
> Nemuzu to odzkouset, protoze nejsem hrdym majitelem disketove mechaniky,
> ale zkusil bych obalit do vyjimky neco jako
>
> try:
> os.path.exists("a:\neco_blablabla.txt")
> except:
>
> ''' zjistit, co to hodilo za vyjimku '''
>
> a zkusli bych, jestli z exception neco nepoznam...
>
> S pozdravem
> MP
>
> 2008/4/19 zu1234 <zu1...@seznam.cz <mailto:zu1...@seznam.cz>>:
Jinak starý klasický trik je pokusit se otevřít soubor A:\NUL, který se
podaří otevřit, pokud máte v mechanice disketu.
Jinak také se dá přečíst velikost disku, což hází chybu, pokud disketa není.
A v neposlední řadě jde také zjistit, která písmena disku jsou
momentálně k dispozici, a která z nich jsou výměnné disky a rozšířit tak
funkci na otestování disket, USB flashek, CD/DVD mechanik, atd..
Miloslav Ponkrác
zu1234 napsal(a):
> Jinak starý klasický trik je pokusit se otevřít soubor A:\NUL, který se
> podaří otevřit, pokud máte v mechanice disketu.
>
> Jinak také se dá přečíst velikost disku, což hází chybu, pokud disketa není.
>
> A v neposlední řadě jde také zjistit, která písmena disku jsou
> momentálně k dispozici, a která z nich jsou výměnné disky a rozšířit tak
> funkci na otestování disket, USB flashek, CD/DVD mechanik, atd..
Neměl byste i pro tohle nějaké příklad?
Moc děkuji za ochotu,
ZU
>
> Miloslav Ponkrác
Hledej "python výjimky" nebo "python exceptions"
>
> Neměl byste i pro tohle nějaké příklad?
>
To tu dával již příklad Marek P. ....
Ahoj
--
geon
Pavel Kosina
Toto vypíše "error":
import os
try:
if os.path.exists(fi_arch):
print "ano"
else:
print "ne"
except:
print "error"
A toto vypíše "ne", přičemž předtím disketovka zachroupe:
import os
fi_arch = "a:/"
try:
if os.path.exists(fi_arch):
print "ano"
else:
print "ne"
except:
print "error"
Mám xpsp2 py2.5
--
geon
Pavel Kosina
Ale řešením problému s
Exception Processing Message c0000013 Parameters 75b6bf9c 4 75b6bf9c
75b6bf9c
je nastavení:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\ErrorMode=2
Teda já to za řešení nepovažuji, ale je to alespoň vysvětlení.
http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=2586411&SiteID=17&pageid=0
Děkuji,
ZU
zu1234 napsal(a):
> _______________________________________________
> Python mailing list
> Pyt...@py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
>
Supermane, jednak jsem řekl že jsem začátečník,
jednak jsem napsal: "Teda já to za řešení nepovažuji, ale je to alespoň
vysvětlení".
A mimochodem, jak byste to řešil Vy?
Chudák pan Kosina, který byl ochotný to vyzkoušet, má evidentně ve svém
xpsp2 "zničeno veškeré upozorňování na vážné chyby".
ZU
superman napsal(a):
Uvědomil bych si, že přenositelně to napsat nejde a obalil bych si pár
Win API funkcí buď sám pomocí Python C API, nebo bych použil modul win32.
Pomocí Win API funkce SetErrorMode(unsigned int mode) bych nastavil
režim chyb, který bych chtěl pro svůj program.
Pomocí Win API funkce GetLogicalDrives(), nebo GetLogicalDriveStrings()
bych zjistil, jaká písmena disků jsou k dispozici.
Win API funkce GetDriveType(string* adresar) mi umožní zjistit typ disku
- zda je disk výměnný, nebo ne.
A konečně pomocí funkce GetDiskFreeSpace(...), nebo
GetDiskFreeSpaceEx(...) bych se pokusil na daný výměnný disk sáhnout a
tato funkce vrací informaci o chybě, ze které jde vyčíst zda se
podařilo, případně proč ne (nejsou práva, disk není v mechanice, apod.).
(Detailnější informace jsou přístupné pomocí GetLastError()).
Miloslav Ponkrác
>Chudák pan Kosina, který byl ochotný to vyzkoušet, má evidentně ve
svém xpsp2 zničeno veškeré upozorňování na vážné chyby".
Vzhledem k tomu, že takto snadno může přehlédnou upozornění na vážnou hw
chybu například, takže může snadno přijít o data, aniž by dostal
jakékoli varování. Stejně mu můžou náhle mizet programy (které by
předtím normálně hlásily proč spadly), a další. A může klidně měsíc
hledat problém, na který by byl dávno předtím upozorněn.
Miloslav Ponkrác
Podle toho už budu i já schopen pokračovat.
Děkuji Vám za tuto rozsáhlou a přesnou odpověď!!
ZU
superman napsal(a):