查找不存在文件的Python脚本
我一点也不懂Python,但我必须尽快运行这个脚本。我在网上搜索过类似的问题,但找不到确切的情况 我运行了一个脚本nameTime.py,它应该将访问日志中的用户名和日期输出到一个列表中,该列表包含日志中每天每个用户的编号和名称。脚本未完成并输出以下错误查找不存在文件的Python脚本,python,linux,scripting,Python,Linux,Scripting,我一点也不懂Python,但我必须尽快运行这个脚本。我在网上搜索过类似的问题,但找不到确切的情况 我运行了一个脚本nameTime.py,它应该将访问日志中的用户名和日期输出到一个列表中,该列表包含日志中每天每个用户的编号和名称。脚本未完成并输出以下错误 Traceback (most recent call last): File "./nameTime.py", line 19, in <module> f=open(file,'r') IOError:
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'
似乎名称文件仍然包含旧文件名的值。我在脚本中根本看不到任何名称文件分配了该值。因为我只想让这个脚本处理惟一的访问登录/opt/logs,access_log,显然我必须清除旧值,或者不管它是怎么做的;如何操作?无法保证您要查找的文件在当前目录中 打开文件时,需要加入文件路径根:
import os.path
../..
f = open(os.path.join(root,file),'r')
../..
os.chdir'opt/logs'也可能是错误的,它假定脚本是从特定目录运行的-最好使用绝对路径,例如/opt/logs或任何适合您情况的路径。检查根变量。您可能在./access\u log-20150215处查找文件,该文件实际上位于子目录中,如./subdir/access\u log-20150215
如果要浏览所有子目录,请使用
f=open(os.path.join(root,file),'r')
但是如果你只想要最上面的目录,你可以使用它
os.listdir('.')
好的,从@James和@isedev的建议开始,我首先尝试了os.listdir'.'和。。。成功了。我在/opt/logs文件夹中运行nameTime.py,只处理access\u log,不查找access\u log-20150215或任何其他文件,得到了我需要的输出文件dateAccess.txt。谢谢你的其他建议;我确信我必须在某个时候调整这个文件,以便在我们的其他系统上运行,以提供更多的统计数据,因此我接下来要做的就是学习Python,以便您的其他建议对我有意义。非常感谢 请给我看一下……我现在不能给你看,不是在工作,而是字母和数字的格式。我很乐意明天输入。你…还没有在你的问题中编辑代码。请把你的问题包含进去。哦,对不起。给你。root+文件不能确保插入路径分隔符。@isedev。我忘了!已修复。实际上是的,access_log-20150215文件位于/opt/log/archive中,但我只需要从/etc/httpd/logs复制到/opt/logs中的当前access_日志。我认为os.listdir“.”听起来更像我要找的。我明天会试试。我也会试试,我不太确定加入路径文件根意味着什么,但我愿意学习。另外,我还想去掉os.dir行。我喜欢你两个建议中的绝对目录的想法;不过,在我学会如何更好地使用Python之前,我只需要让它工作起来。哦,我的意思是我想去掉os.chdir行,昨晚打错了。
os.listdir('.')