【发布时间】:2016-07-18 15:16:04
【问题描述】:
更新:如果您尝试在 Python 中搜索文件以查找今天的日期,我已在下面的答案部分中发布了我的最终代码。
我有一个文件夹,其中包含由程序创建的日志。日志标题包含用户名和创建日志的日期。我正在尝试编写一个 Python 脚本来打开包含今天日期的日志并读取它们。我使用 datetime 来获取今天的日期,并使用 if today in logFolderContent[x] 来搜索日期。我能够使该脚本的较小版本正常工作(搜索三个字符串),但是当我尝试重写它以搜索文件夹时,我遇到了问题。
以下是我的脚本。感谢@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 个文件吗?其中有 15 个没有 .txt 吗?
-
@pwnsauce 。 list.reverse() 。而不是 [file1, file2, file3] 它将是 [file3, file2, file1]
-
@pwnsauce 我会将打印输出放在代码下。也许这会有所帮助
标签: python python-3.x datetime search