@Sirius3 du hast recht, ich habe meinen vorherigen Post nicht durchgelesen, sorry.
Habe mir jetzt dein bsp angeschaut lang angeschaut teilweise verstanden, um alle files aus den ordnern und unterordnern auszulesen wäre das der richtige weg, und in "filename" zu schreiben, ist das so richtig?
In deinem bsp in der letzten zeile ist ein fehler drin,
output.write(f"namen der txt's: \n{'\n'.join(filenames)}\n")
SyntaxError: f-string expression part cannot include a backslash
1x brauche ich alle files aus den unterordnern.
1x brauche ich nur bestimmte files, da ist das erste bsp von Sirius3 für mich besser .
filesA.txt sieht dann so aus:
2020-08-14_13:08:47
Anzahl PDF's: 4
/home/a/abc/abcd/abcdf/11114.txt
/home/a/abc/abcd/abcdf/abcdfg/11116_a_b_c_d_e_f.txt
/home/a/abc/abcd/abcdf/abcdfg/11113_irgend_etwas_steht_da.txt
/home/a/abc/abcd/abcdf/abcdfg/11119_hier_steht_auch_etwas.txt
Ich brauche den ganzen Pfad nicht, es muss doch möglich sein mit dem Code wie im moment ist, dass ich nur die formatierung anpasse, nur die Namen der txt in das Textfile zu schreiben.
Die filesA.txt solte so ausschauen.
11114.txt
11116_a_b_c_d_e_f.txt
11113_irgend_etwas_steht_da.txt
11119_hier_steht_auch_etwas.txt
Bitte falls einer das schon mal gemacht hat. Für euch Profis ist das nicht unmöglich.
Vielen Dank im Voraus
Code: Alles auswählen
bestimmtefilesA = ["11114*.txt", "11116*.txt", "11113*.txt","11119*.txt"]
bestimmtefilesB = ["11112*.txt", "11117*.txt", "11118*.txt","11115*.txt","12345.txt"]
...C
...D
#usw.
def find_files(path, patterns):
return [p for p in path.rglob('**/*')
if any(p.match(pattern) for pattern in patterns)
]
def filesA():
#print (find_files)
files = []
fileA = find_files(path, bestimmtefilesA)
#files.append(str(fileA))
#files.append(fileA)
with open("/home/a/abc/mailfiles/filesA.txt", "w", encoding= "utf8") as output:
output.write(f"{aktuell}\n\n\n")
output.write(f"Anzahl TXT's: {len(fileA)}\n\n")
output.write(f"\n" .join(str(item) for item in fileA))
#return filesA
filesA()
def filesB():
#print (find_files)
files = []
fileB = find_files(path, bestimmtefilesB)
#files.append(str(fileB))
with open("/home/a/abc/mailfiles/filesB.txt", "w", encoding= "utf8") as output:
output.write(f"{aktuell}\n\n\n")
output.write(f"Anzahl TXT's: {len(fileB)}\n\n")
output.write(f"\n" .join(str(item) for item in fileB))
#return filesB
filesB()