Knowee
Questions
Features
Study Tools

Želimo napisati funkcijo, ki bo poiskala vse datoteke v mapi pot in njenih podmapah, katerihvelikost presega max_velikost. Funkcija naj vrne tabelo tabelo parov poti do velikih datotekin njihovih velikosti, urejeno po velikosti. Dopolni funkcijo na naslednji strani, da bo delovalakot kaže zgled:Zgled:Za naslednjo datotečno strukturo:mapaword.exe (499)kodazelva.py (256)podmapapodmapasvet.py (512)slikeselfie.jpg (999)videoposnetkitekma.mp4 (2048)test.mp4 (605)video.mp4 (1024)bo funkcija delovala tako (zaradi pregledno-sti je izhodna tabela razbita na posamezne vr-stice):>>> velike_datoteke ( " mapa " , 500)[( " mapa / videoposnetki / tekma . mp4 " , 2048) ,( " mapa / videoposnetki / video . mp4 " , 1024) ,( " mapa / slike / selfie . jpg " , 999) ,( " mapa / videoposnetki / test . mp4 " , 605) ,( " mapa / podmapa / podmapa / svet . py " , 512)]def velike_datoteke ( pot , max_velikost ):tab_velikosti =for dat in :celotna_pot =ifvelikost =if :tab_velikosti . (( celotna_pot , velikost ))else :rek =tab_velikosti . ( rek )return sorted ( tab_velikosti , ,)

Question

Želimo napisati funkcijo, ki bo poiskala vse datoteke v mapi pot in njenih podmapah, katerihvelikost presega max_velikost. Funkcija naj vrne tabelo tabelo parov poti do velikih datotekin njihovih velikosti, urejeno po velikosti. Dopolni funkcijo na naslednji strani, da bo delovalakot kaže zgled:Zgled:Za naslednjo datotečno strukturo:mapaword.exe (499)kodazelva.py (256)podmapapodmapasvet.py (512)slikeselfie.jpg (999)videoposnetkitekma.mp4 (2048)test.mp4 (605)video.mp4 (1024)bo funkcija delovala tako (zaradi pregledno-sti je izhodna tabela razbita na posamezne vr-stice):>>> velike_datoteke ( " mapa " , 500)[( " mapa / videoposnetki / tekma . mp4 " , 2048) ,( " mapa / videoposnetki / video . mp4 " , 1024) ,( " mapa / slike / selfie . jpg " , 999) ,( " mapa / videoposnetki / test . mp4 " , 605) ,( " mapa / podmapa / podmapa / svet . py " , 512)]def velike_datoteke ( pot , max_velikost ):tab_velikosti =for dat in :celotna_pot =ifvelikost =if :tab_velikosti . (( celotna_pot , velikost ))else :rek =tab_velikosti . ( rek )return sorted ( tab_velikosti , ,)

...expand
🧐 Not the exact question you are looking for?Go ask a question

Solution 1

Za rešitev te naloge bomo uporabili modul os v Pythonu, ki nam omogoča interakcijo z operacijskim sistemom, vključno z branjem datotek in map.

Najprej bomo z uporabo funkcije os.walk(pot) prebrali vse datoteke v mapi in podmapah. Ta funkcija vrne generator, ki ustvari trojico za vsako mapo v drevesu direktorijev, ki ga korenini dana pot. Vsaka trojica vsebuje ime trenutne mape, seznam imen podmap in seznam imen datotek v trenutni mapi.

Nato bomo za vsako datoteko preverili njeno velikost z uporabo funkcije os.path.getsize(celotna_pot). Če je velikost datoteke večja od dane max_velikost, bomo dodali par (pot, velikost) v naš seznam tab_velikosti.

Če naletimo na podmapo, bomo rekurzivno poklicali našo funkcijo velike_datoteke za to podmapo in dodali rezultate v naš seznam tab_velikosti.

Na koncu bomo vrnili seznam tab_velikosti, urejen po velikosti datotek.

Tukaj je dopolnjena funkcija:

import os

def velike_datoteke(pot, max_velikost):
    tab_velikosti = []
    for dirpath, dirnames, filenames in os.walk(pot):
        for dat in filenames:
            celotna_pot = os.path.join(dirpath, dat)
            velikost = os.path.getsize(celotna_pot)
            if velikost > max_velikost:
                tab_velikosti.append((celotna_pot, velikost))
        for dir in dirnames:
            rek = velike_datoteke(os.path.join(dirpath, dir), max_velikost)
            tab_velikosti.extend(rek)
    return sorted(tab_velikosti, key=lambda x: x[1], reverse=True)

Ta funkcija bo vrnila seznam parov (pot, velikost) za vse datoteke, katerih velikost presega max_velikost, urejen po velikosti.

This problem has been solved

Solution 2

Za rešitev te naloge bomo uporabili modul os v Pythonu, ki nam omogoča interakcijo z operacijskim sistemom, vključno z branjem datotek in map.

Najprej bomo z uporabo funkcije os.walk() prebrali vse datoteke v dani mapi in njenih podmapah. Ta funkcija vrne generator, ki proizvaja terke za vsako mapo v drevesu direktorijev, ki ga korenini dana mapa. Vsaka terka vsebuje ime trenutne mape, seznam imen podmap in seznam imen datotek v trenutni mapi.

Nato bomo za vsako datoteko preverili njeno velikost z uporabo funkcije os.path.getsize(). Če velikost datoteke presega max_velikost, bomo dodali par, ki vsebuje pot do datoteke in njeno velikost, v seznam tab_velikosti.

Na koncu bomo seznam tab_velikosti uredili po velikosti datotek v padajočem vrstnem redu in ga vrnili kot rezultat funkcije.

Tu je dopolnjena funkcija:

import os

def velike_datoteke(pot, max_velikost):
    tab_velikosti = []
    for dirpath, dirnames, filenames in os.walk(pot):
        for dat in filenames:
            celotna_pot = os.path.join(dirpath, dat)
            velikost = os.path.getsize(celotna_pot)
            if velikost > max_velikost:
                tab_velikosti.append((celotna_pot, velikost))
    return sorted(tab_velikosti, key=lambda x: x[1], reverse=True)

Ta funkcija bo vrnila seznam parov, ki vsebujejo pot do datoteke in njeno velikost, urejen po velikosti v padajočem vrstnem redu.

This problem has been solved

Similar Questions

Matevž se pri svojem delu pogosto srečuje s podatki, ki so v datoteko zapisani v oblikitabele. Da mu ne bo treba kode za branje pisati vedno znova, mu pomagaj napisatifunkcijo preberi_tabelo(ime_datoteke, locilo), ki sprejme ime datoteke s tabelo teropcijski argument locilo, ki pove, kateri znak razmejuje stolpce. Privzeto ločilo naj bovejica.Prva vrstica datoteke predstavlja imena stolpcev, vsaka naslednja pa en podatek iz tabele.Funkcija naj vrne seznam slovarjev, kjer je vsaka vrstica tabele predstavljena s slovarjem,katerega ključi so imena stolpcev, vrednosti pa ustrezne vrednosti iz tabele.Predpostavite, da datoteka zagotovo obstaja in je pravilno sestavljena.Zgled:Če imamo podano datoteko podatki.csv:0 Vpisna š tevilka , Ime , Priimek , Program , Letnik1 1741651 , Jan , Kosec , Matematika ( UNI ) ,22 1741652 , Maja , Avsec , Prakti č na matematika ( VS Š ) ,33 1741653 , Janja , Lukan , Finan č na matematika ( MAG ) ,14 1741654 , Lan , Ž ibert , Uporabna statistika ( MAG ) ,2naj da klic funcije preberi_tabelo(podatki.csv) naslednji rezultat:2>>> preberi_tabelo ( ’ podatki . csv ’)[{ ’ Ime ’: ’Jan ’ ,’ Letnik ’: ’2 ’ ,’ Priimek ’: ’ Kosec ’ ,’ Program ’: ’ Matematika ( UNI ) ’ ,’ Vpisna š tevilka ’: ’1741651 ’} ,{ ’ Ime ’: ’ Maja ’ ,’ Letnik ’: ’3 ’ ,’ Priimek ’: ’ Avsec ’ ,’ Program ’: ’ Prakti č na matematika ( VS Š ) ’ ,’ Vpisna š tevilka ’: ’1741652 ’} ,{ ’ Ime ’: ’ Janja ’ ,’ Letnik ’: ’1 ’ ,’ Priimek ’: ’ Lukan ’ ,’ Program ’: ’ Finan č na matematika ( MAG ) ’ ,’ Vpisna š tevilka ’: ’1741653 ’} ,{ ’ Ime ’: ’Lan ’ ,’ Letnik ’: ’2 ’ ,’ Priimek ’: ’Ž ibert ’ ,’ Program ’: ’ Uporabna statistika ( MAG ) ’ ,’ Vpisna š tevilka ’: ’1741654 ’}]Če bi v datoteki podatki.csv vse vejice nadomestili s podpičji pa bi funkcijo poklicali ta-kole preberi_tabelo(’podatki.csv’, locilo=’;’). Funkcija bi v tem primeru vrnilaenak rezultat kot v zgledu.

Sestavi funkcijo racun, ki sprejme ime datoteke, ki jo tvori več vrstic. V vsaki vrstici jezapisan (pravilno!) račun. Funkcija naj zapiše te račune skupaj z rezultati na novo dato-teko z imenom rezultati.txt tako, kot kaže zgled. Namig: vrednost izraza, zapisanegakot niz, izračunamo s pomočjo funkcije eval, npr. eval("1 + 3 - 10 * (9 // 5)")vrne -6.Vsebina datoteke "primer1.txt":7 - 83 * 4.51 + 3 - 10 * (9 // 5)>>> racun("primer1.txt")>>>Vsebina datoteke "rezultati.txt":7 - 8 = -13 * 4.5 = 13.51 + 3 - 10 * (9 // 5) = -6

Sestavi naslednje preproste funkcije. Predpostavi, da so morebitni potrebni moduli uvoženi -če potrebujemo modul m je ta uvožen z ukazom import m.(1) [5 T] Funkcijo st_praznih(datoteka), ki vrne število praznih vrstic v tekstovni datotekiz imenom datoteka.(2) [5 T] Funkcijo v_rikverc(besedilo), ki sprejme besedilo, v katerem so posameznebesede ločene s piko, in vrne besedilo z obrnjenim vrstnim redom besed. Za besedilo"danes.je.lep.dan" bo funkcija torej vrnila niz "dan.lep.je.danes".(3) [5 T] Funkcijo pravilni_nkotnik, ki sprejme želvo zelva, število kotov n (kjer je n > 3)ter dolžino stranice a in nariše pravilni n-kotnik.3

Julija želi podatke v tabeli prikazati kot zloženi stolpčni diagram. Da bo risanje diagramalažje, si želi vnaprej izračunati vmesne vsote, ki bodo predstavljale meje med posameznimibloki diagrama. Pomagaj ji napisati funkcijo vmesne_vsote(podatki), ki bo za podanotabelo podatkov podatki izračunala in vrnila tabelo vmesnih vsot. Funkcija naj originalnetabele ne spreminja.Ker ne moremo izrisati zloženega stolpčnega diagrama, če se v podatkih nahajajo nega-tivne ali neštevilske vrednosti, naj funkcija v primeru neveljavnega podatka sproži napakoValueError kot kaže zgled.Zgled:>>> vmesne_vsote ([1 , 1 , 1 , 1 , 1])[1 , 2 , 3 , 4 , 5]>>> vmesne_vsote ([1 , 2 , 3 , 4 , 5])[1 , 3 , 6 , 10 , 15]>>> vmesne_vsote ([])[]>>> vmesne_vsote ([42])[42]>>> vmesne_vsote ([1 , 2 , 3 , -1 , 5])....ValueError : Elementi tabele morajo biti nenegativna š tevila .>>> vmesne_vsote ([1 , "2" , 3 , 4 , 5])....ValueError : Elementi tabele morajo biti nenegativna š tevila .

Sestavi izraze (ne stavke), ki imajo naslednje vrednosti: (če ne znaš sestaviti izraza, lahko zapolovično število točk napišeš zaporedje ukazov, ki poskrbijo, da je v spremenljivki rezultat po-tem ustrezna vrednost). Predpostavi, da so morebitni potrebni moduli uvoženi - če potrebujemomodul m je ta uvožen z ukazom import m.(1) [3 T] Niz, ki vsebuje naključno števko, na primer "4".(2) [3 T] Število različnih znakov v nizu niz. Pri tem ločimo med malimi in velikimi tiskanimičrkami. Za niz = "Ananas", bo to 4.(3) [3 T] Povprečje vseh vrednosti v nepraznem slovarju slovar. Predpostavite, da so vsevrednosti številske.(4) [3 T] Tabelo logičnih vrednosti, ki povejo, ali so istoležni elementi tabele tab_st ne-negativni. Za tab_st = [3, -1, 0, 2], naj ima torej vrednost [True, False, True,True]

1/1

Upgrade your grade with Knowee

Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.