Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找不存在文件的Python脚本_Python_Linux_Scripting - Fatal编程技术网

查找不存在文件的Python脚本

查找不存在文件的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:

我一点也不懂Python,但我必须尽快运行这个脚本。我在网上搜索过类似的问题,但找不到确切的情况

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

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('.')