UPDATE: Wenn Sie versuchen, eine Datei für das heutige Datum in Python suchen, habe ich meinen endgültigen Code in den Antworten Abschnitt unten gepostet.Suchen Sie eine Datei für das heutige Datum in Python
Ich habe einen Ordner mit Protokollen, die von einem Programm erstellt wurden. Der Protokolltitel enthält den Namen des Benutzers und das Datum, an dem das Protokoll erstellt wurde. Ich versuche, ein Python-Skript zu schreiben, das die Logs mit dem heutigen Datum öffnet und sie liest. Ich habe datetime verwendet, um das heutige Datum zu erhalten, und wenn heute in logFolderContent [x] nach dem Datum suchen. Ich konnte eine kleinere Version dieses Skripts arbeiten (suche drei Strings), aber als ich es neu schreiben wollte, um den Ordner zu suchen, in dem ich Probleme hatte.
Unten ist mein Skript. Dank der Hilfe von @Steven Summers ist mein Code etwas ordentlicher. Ich habe den alten Code durch den neuen Code ersetzt. Ich habe inzwischen festgestellt, dass das Skript abstürzt, wenn es versucht, mit den heutigen Dateien zu interagieren. Hier
import os
import datetime
# <><><><><><><><><><><><><><> Get Today's Date <><><><><><><><><><>
today = datetime.date.today()
today = str(today)
runDate = today
print("Today's Date:", today, "\n\n\n")
# <><><><><><><><><><><><><> Get all today's files <><><><><><><><><>
logFolder = r"\\foamfile\logs\POHistory"
logFolderContent = os.listdir(logFolder) # WORKING
logFolderContent.reverse()
print("log folder content", logFolderContent)
countFolderContent = len(logFolderContent) # WORKING
print("Total Files in Folder:", countFolderContent)
eligibleLogs = []
continueLogSearch = "true"
x = 0
for i, file in enumerate(logFolderContent):
if file.startswith(today):
eligibleLogs.append(i)
print("eligibleLogs[i] = ", eligibleLogs[i])
elif not file.endswith(".txt"):
print("Non-text file found and ignored")
print(logFolderContent[i])
ist die Ausgabe:
Today's Date: 2016-07-18
log folder content ['Thumbs.db', '2016-07-18-WIN7-BUYING.txt', (etc...) '2016-04-20-ERIC-NEW.txt']
Non-text file found and ignored
Thumbs.db
Traceback (most recent call last):
File "U:/JustinG/Python/Directory/Complete_1.py", line 24, in <module>
print("eligibleLogs[i] = ", eligibleLogs[i])
IndexError: list index out of range
process finished with exit code 1
Als ich die Leitung logFolderContent.reverse remove(), das Skript druckt alle Dateinamen (das heißt, sie sind die Erfüllung der Anforderung unten) und stürzt ab, wenn es Dateinamen mit dem heutigen Datum erreicht.
Was meinst du mit „Als ich die Gruppe logFolderContent reverse“ gibt es wirklich 584 Dateien im Ordner? sind 15 von ihnen ohne .txt? – pwnsauce
@pwnsauce. list.reverse(). Anstelle von [file1, file2, file3] wäre es [file3, file2, file1] – Justlieb
@pwnsauce Ich lege die gedruckte Ausgabe unter den Code. Vielleicht wird das helfen – Justlieb