Habe es wieder, so wie auch Sirius3 es mir vorgeschlagen hat.
Code: Alles auswählen
for path in INPUT_PATH.rglob('*'):
if path.is_dir():
print (path.name)
Code: Alles auswählen
for path in INPUT_PATH.rglob('*'):
if path.is_dir():
print (path.name)
Code: Alles auswählen
for path in INPUT_PATH.rglob('*'):
if path.is_dir():
#print (path.name)
textfiles = [f.name for f in path.glob("*.txt") if f.name != "list.txt"]
output_filename = (OUTPUT_PATH / path.name).with_suffix('.txt')
output_filename.write_text(",".join(textfiles))
Code: Alles auswählen
def textpath():
OUTPUT_PATH = Path("/home/ja/meinordner/mein_backup")
INPUT_PATH = Path("/home/ja/meinordner/samonestozatest")
for path in Path(INPUT_PATH).rglob('*'):
if path.is_dir():
textfiles = [f.name for f in path.glob("*.txt")] #if f.name != "list.txt"]
if textfiles:
output_filename = (OUTPUT_PATH / path.name).with_suffix('.txt')
output_filename.write_text(",".join(textfiles))
else:
pass
def mailsout(idemail):
idemails = idemail
for item in idmails:
OUTPUT_PATH = Path(/home/ja/meinordner/mein_backup")
for path in Path(INPUT_PATH).rglob('*txt'):
if path.is_file():
if item[0] in path.name:
#print (item[0], ' , ', path.name, ' , ', item[1])
with open("/home/ja/meinordner/mein_backup/"+path.name) as fp:
msg = MIMEText(fp.read())
me = 'ganja@mail'
msg['Subject'] = 'Anzahl :' +item[0]+'.'
msg['From'] = me
msg['To'] = item[1]
#msg['To'] = (', ').join(anemail.split())
s = smtplib.SMTP('ganjas')
s.send_message(msg)
s.quit()
def main():
textpath()
idemail = []
if idx != None:
rows = #sql_query
for row in rows:
id = row[1]
email = [2]
idemail.append((id, email))
mailsout(idemail)
if __name__ == "__main__":
main()
Im Moment ist mir immer noch nicht ganz klar, was der Unterschied zwischen dem "ersten Unterordner" und "Unterordner1" ist. Sicherlich wäre es ganz sinnvoll, ein besseres Bild davon zu erhalten, wie Deine Ordnerstruktur tatsächlich aussieht. Unter den meisten Linuxen gibt es da ein Paket namens "tree", das -- oh Wunder -- ein Programm namens tree(1) bereitstellt. Dieses Programm erstellt rekursiv eine hübsche Repräsentation Deines Verzeichnisbaums, die Du dann bitte einmal hier posten möchtest -- wenn es sehr viele Dateien und Ordner sind, womöglich auch gekürzt, aber dann jedenfalls so, daß sich die Struktur Deiner Verzeichnisse halbwegs erkennen und nachvollziehen läßt. Zusätzlich wäre es ganz schon, wenn Du einmal auf der Basis dieser Verzeichnisstruktur manuell ein kleines Beispiel erstellst, wie Deine Ausgabedateien aussehen sollen. Vielen Dank und viel Erfolg.ganja hat geschrieben: Donnerstag 24. März 2022, 11:45 Leider bekomme ich den Inhalt nicht so wie ich es mir vorstelle. Ich dachte ich suche hier schon rekursiv, habe Unterordner im Unterordner1 es wird der Inhalt in einer txt erzeugt aber mit dem Namen des ersten Unterordner und nicht Unterordner1.
Code: Alles auswählen
INPUT_PATH = Path("/home/ja/meinordner/samonestozatest")
SENDER = 'ganja@mail'
def collect_text_files(input_path):
for path in input_path.rglob('*'):
if path.is_dir():
textfiles = [f.name for f in path.glob("*.txt")]
if textfiles:
yield path.name, textfiles
def send_mail(smtp, id, email, textfiles):
msg = MIMEText(",".join(textfiles))
msg['Subject'] = f'Anzahl :{id}.'
msg['From'] = SENDER
msg['To'] = email
smtp.send_message(msg)
def send_mails(input_path, emails):
smtp = smtplib.SMTP('ganjas')
for name, textfiles in collect_text_files(input_path):
for id, email in emails:
if id in name:
send_mail(smtp, id, email, textfiles)
smtp.quit()
def main():
emails = sql_query()
send_mails(INPUT_PATH, emails)
if __name__ == "__main__":
main()