Stránka 1 z 1

[Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 06:44
od Dupl3xx
Zdravim, poradil by nekdo, jak jednoduse zjistit, zda se v dane slozce nacházi soubor s priponou exe ? soubory ve slozce se muzou menit a nejsou predem znamy

potreboval bych neco ve stylu
Kód: Vybrat vše
if exist (extension exe):
a =1
else
a=0

(jednoduse napsano)


diky

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 08:43
od JirkaVejrazka
Mrkni se na modul glob, resp. funkci glob.glob() Vic ti neporadim, clovek se nejlip nauci tim, ze na to prijde sam :)

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 08:48
od Vykook
jestli ti jde jen o priponu, tak by sis mel vystacit s modulama os.path a re.

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 09:04
od Dupl3xx
nevim jestli jsu timto smerem dobre

Kód: Vybrat vše
os.chdir("/")
a = 0
for files in os.listdir("."):
    if files.endswith(".exe") and a == 0:
        a = 1

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 09:25
od Vykook
Treba tak a nebo pomoci http://docs.python.org/howto/functional ... rehensions.
Jinak jsem se spletl, neni to os.path, ale os.listdir http://docs.python.org/library/os.html
zbytek snad uz domyslis sam, neni na tom nic slozityho

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 09:44
od Dupl3xx
tak to funguje, jen jeste drobnost, jak udelat aby to bralo i .exe1

cokoli co ma priponu exe a delsi, nejakej regular tam narvat?

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 09:49
od FuzzyOndřej
To „and a == 0” je tam zbytečné. Po prvním úspěšném nalezení breakni cyklus. Ale stejně je jednodušší používat glob:

Kód: Vybrat vše
from glob import glob
print glob("/*.exe")


Pokud bys fakt chtěl výstup a=0/1, tak asi takhle:

Kód: Vybrat vše
a = 1 if glob("/*.exe") else 0


Pokud chceš delší příponu, tak nějak takhle, záleží na tom, jaký tvar ta přípona může mít:

Kód: Vybrat vše
print glob("/*.exe*")


Tohle je jednoduché řešení, ale není ideální, protože ti to vrátí třeba i soubor.exe.pdf, což asi nechceš.

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 10:04
od Dupl3xx
diky, brejknul jsem to, poradil bys mi stou moji verzi, jak vzit vpotaz i .exe*

Kód: Vybrat vše
files.endswith(".exe*")
mi nejede

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 11:59
od Vykook
Pouzij ten modul re. Je to rozhodne mocnejsi a flexibilnejsi reseni.

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 12:21
od Dupl3xx
import re použit nemuzu ani glob
nakonec pouzivam toto to funguje presne jak chci
Kód: Vybrat vše
m = 0
for files in os.listdir("."):
   files = files.lower()
   arr=files.split(".")
   if len(arr) > 1:
      if (arr[-1]).startswith(exe"):
         m = 1
         break

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 12:35
od JirkaVejrazka
Aha, takze skolni zadani.

Napovim
Kód: Vybrat vše
for filename in os.listdir("."):
   bits = filename.split(".")
   if len(bits) > 1:
       print bits[-1]

Re: [Python]Existence exe souboru ve slozce

Odeslat příspěvekNapsal: 3. 9. 2012 12:49
od Dupl3xx
neni to ukol do skoly, kazdoapdne vyreseno .. dekuji vsem