for sub_dir in os.listdir(PROJECT_SUB_DIRS)
TypeError: listdir: illegal type for path parameter
vielleicht mit 3.4 nicht kompatibel?
Auch mit dem geänderten der gleiche fehler
Daten auslesen
Ich habe halt gemacht was man nicht machen sollte: mehrere Funktionen runterschreiben ohne irgendwas davon auch tatsächlich mal zu testen.
Code: Alles auswählen
def is_project_path(path):
return os.path.isdir(path) and all(
os.path.isdir(os.path.join(path, sub_directory))
for sub_directory in PROJECT_SUB_DIRS
)
Steht in der Doku zu ``filter``: https://docs.python.org/3.4/library/fun ... tml#filter
hier:
hier:
Note that filter(function, iterable) is equivalent to the generator expression (item for item in iterable if function(item)) if function is not None and (item for item in iterable if item) if function is None.
Wie macht man es wenn man 2 unbekannte in einem Pfad hat?
Beispielpfad: C:\user\project\test1\test2\project2\
Im Ordner Project sind viele ordner mit unbekannten namen die alle durchsucht werden sollen und in project2 soll z.b. die direkt da drin liegende test.txt durchsucht werden. Wobei Project2 auch immer einen anderen namen hat der inhalt aber wieder mit bekannten ordnern und der .txt gefüllt ist. Erstmal befindet sich die gesuchte .txt aber direct in project2 und nicht im unterordner davon.
Beispielpfad: C:\user\project\test1\test2\project2\
Im Ordner Project sind viele ordner mit unbekannten namen die alle durchsucht werden sollen und in project2 soll z.b. die direkt da drin liegende test.txt durchsucht werden. Wobei Project2 auch immer einen anderen namen hat der inhalt aber wieder mit bekannten ordnern und der .txt gefüllt ist. Erstmal befindet sich die gesuchte .txt aber direct in project2 und nicht im unterordner davon.
@Eisi: Fertig nicht, aber das lässt sich mit `os.walk()` doch sehr leicht selber schreiben.
Code: Alles auswählen
for curdir, dirs, files in os.walk(root_path):
if filename in files:
with open(filename, 'r') as lines:
if any(needle in line for line in lines):
print(curdir, dirs, files)
Traceback (most recent call last):
File "E:\python\path.py", line 30, in <module>
with open(filename, 'r') as lines:
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
dazu muss man sagen das es keine test.txt beim ausführen ist sondern eine ".NC" datei die ursprünglich von Linux kommt, was aber bisher noch nie ein problem war.
Wenn ich Zeile 3 - 5 weg lasse und ein print als ergebnis ausgeben lasse klappt es.
@Eisi: Du musst den Pfad dorthin noch mit `os.path.join()` davor setzen, denn so wie es jetzt ist versuchst Du eine ``test.txt`` im aktuellen Arbeitsverzeichnis des Prozesses zu öffnen.
wo genau muss denn das os.path.join() hin?
glaube habs jetzt:
glaube habs jetzt:
Code: Alles auswählen
for curdir, dirs, files in os.walk(root_path):
if filename in files:
with open(os.path.join(curdir, filename), 'r') as lines:
if any(needle in line for line in lines):
print(curdir, dirs, files)