Ordner erstellen
Dafür nimmt man heutzutage das 'pathlib'-Modul:
(Wenn der Ordner immer erstellt werden soll, egal ob er schon existiert oder nicht, kann man auch path.mkdir(exist_ok=True) verwenden.)
Code: Alles auswählen
In [1]: import pathlib
In [2]: path = pathlib.Path('mein_ordner')
In [3]: if not path.exists():
...: path.mkdir()
@nezzcarth: nein, nein, nein, der Ordner wird nicht erstellt wenn er schon existiert, wie soll das auch gehen? Richtig also:
Code: Alles auswählen
from pathlib import Path
path = Path("ordner")
path.mkdir(exist_ok=True)
-
- User
- Beiträge: 290
- Registriert: Mittwoch 13. November 2019, 08:38
Mit pathlib.Path.glob():
Code: Alles auswählen
from pathlib import Path
filepaths = list(Path(r"C:\Test").glob("*.*"))
print(filepaths)
-
- User
- Beiträge: 290
- Registriert: Mittwoch 13. November 2019, 08:38
Interessehalber: Warum ist iterdir() einfacher? Ich verwende gerne glob, da ich mir dann, wie DeaD_EyE sagte, die Möglichkeit zur Rekursion offen halte.
Zudem war glob in einem Mini-Test gerade deutlich schneller:
Zudem war glob in einem Mini-Test gerade deutlich schneller:
Code: Alles auswählen
>>> timeit.timeit(stmt="import pathlib; [x for x in pathlib.Path('C:/dev').iterdir() if x.is_file()]", number=1000)
3.377736500000026
>>> timeit.timeit(stmt="import pathlib; [x for x in pathlib.Path('C:/dev').iterdir() if x.is_file()]", number=1000)
3.33625219999999
>>> timeit.timeit(stmt="import pathlib; [x for x in pathlib.Path('C:/dev').glob('*.*') if x.is_file()]", number=1000)
0.9806270999999924
>>> timeit.timeit(stmt="import pathlib; [x for x in pathlib.Path('C:/dev').glob('*.*') if x.is_file()]", number=1000)
0.9812597000000096
Das lag dann aber an etwas anderem. Die beiden Code-Beispiele, eines davon identisch zu dem von Sirius3, funktionieren beide korrekt; ein Ordner wird erstellt, wenn er noch nicht existiert, ohne dass eine Exception auftritt. Die Anmerkung bezog sich auf Inhaltliches.