【发布时间】:2013-01-20 13:54:50
【问题描述】:
我正在尝试搜索一个充满头文件的特定目录,并查看每个头文件,如果任何文件中有一个字符串“struct”,我只想让程序打印哪个文件有它。
到目前为止我有这个,但它不能正常工作,你能帮我弄清楚吗:
import glob
import os
os.chdir( "C:/headers" )
for files in glob.glob( "*.h" ):
f = open( files, 'r' )
for line in f:
if "struct" in line:
print( f )
【问题讨论】:
-
究竟是什么不工作?
-
请定义“工作不正常”
-
它没有打印任何东西,即使我有很多带有行结构的 .h 文件。
-
你在循环文件吗?:for line in f: print(line)
-
for 循环让您一次处理一个文件,因此应该是
for file ...(单数,是的,我是在挑剔,但它有助于缓解思维压力。)其次,你应该在读完文件后关闭它。我推荐使用with结构来自动关闭文件。第三,f是文件句柄,不是文件名(字符串),所以print file而不是print f。