更新:Pythonで今日の日付のファイルを検索しようとしている場合、私は最終的なコードを下の回答セクションに掲載しました。Pythonで今日の日付のファイルを検索
私は、プログラムによって作成されたログを含むフォルダを持っています。ログタイトルには、ユーザーの名前とログが作成された日付が含まれます。私は今日の日付を含むopenのログにPythonスクリプトを書こうとしています。今日の日付を取得するのにdatetimeを使用し、今日の場合はlogFolderContent [x]でを使用して日付を検索しました。私はこのスクリプトの小さなバージョン(3つの文字列を検索)を取得することができましたが、フォルダを検索するために書き直そうとしたときに問題が発生しました。
以下は私のスクリプトです。 @Steven Summersのおかげで、私のコードはちょっときちんとしています。私は古いコードを新しいコードに置き換えました。私はそれ以来、スクリプトが今日のファイルとやりとりしようとするとクラッシュすることに気づいています。ここで
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])
が出力されます。
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
私はラインlogFolderContent.reverseを(削除する)、スクリプトが(彼らは、以下の要件を満たしているという意味)は、すべてのファイル名を出力し、今日の日付のファイル名に達するとクラッシュします。
「logFolderContentグループを逆転するとどういう意味ですか?」 本当にフォルダに584個のファイルがありますか? .txtなしの15人ですか? – pwnsauce
@pwnsauce。 list.reverse()。 [file1、file2、file3]の代わりに[file3、file2、file1] – Justlieb
@pwnsauceコードの下に出力を置いておきます。多分それが助けになるでしょう – Justlieb