不从文件列表中读取文本文件

时间:2014-10-20 18:00:18

标签: python python-2.7 io

不重复:file not opens after if statement

我有一个数据库中的文件列表,需要逐个打开并读取所有文件。

问题:即使文件存在,我也无法打开并阅读文件。 files包含:

1.txt
2.txt
3.txt

我的代码:

path=r'C:\Python27' 
for files in cursor.fetchall():            
     sfile= files[1]
     if os.path.exists(os.path.join(path,sfile)): 
           with open(sfile,'r') as f:
                if 'cat' in f:
                    print 'meow'

错误:

    with open(sfile,'r') as f:
IOError: [Errno 2] No such file or directory: '1.txt'
>>>

请帮我纠正错误!

1 个答案:

答案 0 :(得分:2)

当您致电os.path.join时,还需要open使用os.path.exists

此外,您需要致电file.read以获取文件内容。

path = r'C:\Python27'  # NOTE: r'raw string literal': \ mean \ literally
for files in cursor.fetchall():            
     sfile = files[1]
     spath = os.path.join(path, sfile)
     if os.path.exists(spath):
         with open(spath) as f:
             if 'cat' in f.read():
                 print 'meow'
             # OR
             # if any('cat' in line for line in f):
             #     print 'meow'