Procházení cyklem složky – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Procházení cyklem složky – Python – Fórum – Programujte.comProcházení cyklem složky – Python – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Ralis0
Newbie
8. 5. 2019   #1
-
0
-

Dobrý den,

prosím, mám jen malý dotaz. Mám v bashi napsaný skript, který přepisuji do pythonu a narazil jsem na problém při procházení složek v adresář. Nevíte prosím, jak bych v pythonu mohl napsat něco jako (jde mi jen pouze o ten cyklus, né to v něm :)  

for directory in */ ; do
.
.
.

    echo "$directory"
    echo "---------------------------"
    echo "Editing..."
    cd $directory

# sed pro ID

    cat *.txt >> value.log

Děkuji moc za každou radu 

Nahlásit jako SPAM
IP: 78.45.207.–
Ralis0
Newbie
8. 5. 2019   #2
-
0
-

#1 Ralis
...jakože výpis složek mám, ale to je tak vše...

print("List of folders in your directory: ")

folders = []
 
for entry in os.scandir(cwd):
    if entry.is_dir():
        folders.append(entry.name)
 
print(folders)

akorát právě nevím to, jak docílit výsledku, aby se provedli změny na těchto složkách.. jako to je v tom bashi..

stručně :)   vezmi tuhle složku - udělej definovanou operaci, vezmi další složku a udělej tu samou operaci a atd pro n-složek

Nahlásit jako SPAM
IP: 78.45.207.–
gna
~ Anonymní uživatel
1891 příspěvků
8. 5. 2019   #3
-
+1
-
Zajímavé

stručně :)   vezmi tuhle složku - udělej definovanou operaci, vezmi další složku a udělej tu samou operaci a atd pro n-složek

Nechápu dotaz. For v Pythonu funguje podobně jako v Bashi -- pro každou položku kolekce provede daný příkaz(y). Momentálně tu operaci máš jako přidání názvu do listu, ale můžeš dělat i cokoliv jiného.

Nahlásit jako SPAM
IP: 213.211.51.–
Ralis0
Newbie
8. 5. 2019   #4
-
0
-

#3 gna

safra, máte pravdu, mě tam zmátlo to pole při výpisu ..folders.. ono tam vůbec nemusí být, jde to vypisovat přímo, promiňte :) 

Nahlásit jako SPAM
IP: 78.45.207.–
gna
~ Anonymní uživatel
1891 příspěvků
8. 5. 2019   #5
-
0
-

No, co ten příkaz udělá? Shell rozvine masku na soubory, které jí vyhovují, cat vypíše jejich obsah a výstup je přesměrovaný do logu.

import glob
import shutil

for dirname in glob.glob('*/'):
    print('dir', dirname)
    logname = dirname + 'value.log'
    with open(logname, 'a') as flog:
        for txtname in glob.glob(glob.escape(dirname) + '*.txt'):
            print('txt', txtname)
            with open(txtname, 'r') as ftxt:
                shutil.copyfileobj(ftxt, flog)
Nahlásit jako SPAM
IP: 213.211.51.–
gna
~ Anonymní uživatel
1891 příspěvků
8. 5. 2019   #6
-
0
-

Jaj, kam se ten dotaz poděl? :)

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 22 hostů

Podobná vlákna

Problém s cyklem while — založil Tase

Pomoc s cyklem if/else — založil Thomisso

Problem s for cyklem — založil zoufalec

Problem s cyklem while — založil slipka

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý