Daugiau

Aplankų pakaitos simbolių naudojimas failams kopijuoti naudojant „Python“

Aplankų pakaitos simbolių naudojimas failams kopijuoti naudojant „Python“


Norėčiau nukopijuoti duomenis vienos konkrečios formos failo iš konkretaus aplanko („Grid“) į daugybę aplankų, turinčių pavadinimą „Country“. Šalies formų failai būtų išsaugoti savo pirminį pavadinimą. Kadangi yra daug Šalis aplankų, maniau, kad pakaitos simbolių naudojimas būtų gana naudingas. Ši diagrama bando parodyti, ką darau:

Žemiau yra kodas, kurį turiu tuo metu, kai naudoju šį įrašą kaip vadovą:

importuoti os, sys, glob, shutil root_dir = "C:  Users  xxxx  Desktop  Test " country_dir = "Šalis*" #do_some_function kelyje, dirname os.walk (root_dir): jei country_dir kelyje : pavadinimui dirname: jei subdirname.startswith ('Šalis'): fname glob.glob ('*. shp'): shutil.copyfile (do_some_function, fname)

Tačiau gaunu šią klaidą:

„ValueError“: per daug verčių išpakuoti

Bet koks patarimas, ką darau neteisingai?


REDAGUOTI:

Vadovaudamasis @NathanW pasiūlymu, pakeičiau scenarijų į šį:

importuoti os, sys, shutil root_dir = "C:  Users  xxxx  Desktop  Test " country_dir = "Šalis*" #do_some_function, skirta keliui, dirs, failams os.walk (root_dir + folder_dir): failui failuose: jei file.endswith ('*. shp'): shutil.copy (do_some_function, file)

Deja, nieko nevyksta.


Išbandyti šį:

importuoti os, glob, shutil root_dir = "C:  Users  xxxx  Desktop  Test " country_dir = "Country_" grid_path = "C:  Users  xxxx  Desktop  Test  Grid  Grid.shp" # Get all failai, sudarantys tinklelio formos failą (f, kelias)

Neskubėkite nustatyti kelių (2, 3 ir 4 eilutės), aš išbandžiau scenarijų GNU/Linux, bet „Windows“ keliai visada yra sudėtingesni.

Kaip pastebėjote, galite išvengti pakaitos simbolių; išsireiškimasjei country_dir kelyje:atlieka darbą.

Galiausiai, kaip minėta @atrwork21, turite atsižvelgti į visus „Shapefile“ failus. Tai daro antrasis blokas.


os.pėsčiomisgrąžina trijų reikšmių rinkinį:

kelias, dirs, failai os.walk ()

Taip pat apsvarstykite https://stackoverflow.com/questions/2186525/use-a-glob-to-find-files-recursively-in-python


Žiūrėti video įrašą: Section, Week 4