不重复: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'
>>>
请帮我纠正错误!
答案 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'