gpt4 book ai didi

Python脚本寻找不存在的文件

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:08 26 4
gpt4 key购买 nike

我根本不懂Python,但我必须尽快运行这个脚本。我在网上搜索过类似的问题,但没有找到确切的场景。

我运行了一个脚本 nameTime.py ,该脚本应该将 access_log 中的用户名和日期输出到一个列表中,其中包含日志中每天每个用户的编号和名称。该脚本未完成并输出以下错误。

Traceback (most recent call last):
File "./nameTime.py", line 19, in <module>
f=open(file,'r')
IOError: [Errno 2] No such file or directory: 'access_log-20150215'

我将其从/etc/httpd/logs 复制到/opt/logs 中,它是该目录中唯一的 access_log。顺便说一句,修改后的 os.chdir(...) 和 if file.startswith(...) 命令的完全相同的脚本在子目录/opt/logs/ion 中工作(但其中也不包含不存在的文件)。

脚本的第一行:

import os
import re
os.chdir("opt/logs")

user = []
dates = []
userlist = set()
userPerDay = []
name = re.compile(r'\s[A-Z][A-Z\s*]+\.[A-Z]+[A-Z\s*]*\.[A-Z]+[A-Z\s*]*(?=\.[0-9]+)')
longname = re.compile(r'\s[A-Z][A-Z\s*]+\.[A-Z]+[A-Z\s*]*\.[A-Z]+[A-Z\s*]*\.[A-Z]+[A-Z\s*](?=\.[0-9]+)')
date = re.compile('[0-3][0-9]\/[A-Za-z]+\/[0-9]+(?=:)')
for root, dirs, files in os.walk("./"):
for file in files:
if file.startswith("access_"):
f=open(file,'r')

名称“file”似乎仍然包含旧文件名的值。我在脚本中根本没有看到任何名称"file"为其分配了该值。因为我只想让这个脚本处理/opt/logs 中的唯一访问日志,access_log,显然我必须清除旧值(或者无论如何完成);我该怎么做?

最佳答案

检查root变量。您可能正在 ./access_log-20150215 查找该文件,该文件实际上位于 ./subdir/access_log-20150215 等子目录中。

如果您想浏览所有子目录,请使用

f=open(os.path.join(root,file),'r')

但是如果你只想要顶级目录,你可以使用

os.listdir('.')

关于Python脚本寻找不存在的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36339371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com