我想获取包含字符串xyz的所有文件的路径。结果必须如下:
文件夹/ folderA / fileA2
文件夹/ FolderB中/ fileB1
的文件夹/文件1
我试过了:
for path, subdirs, files in os.walk(folderTestPath):
for file in files:
if "xyz" in open(folderTestPath+file,'r'):
print (os.path.abspath(file))
folderTestPath包含文件夹的路径。此代码仅为我提供文件名后跟一个文件未找到错误。我知道这是一件简单的事情,但由于某些原因我无法得到它。请帮忙。
答案 0 :(得分:1)
您可以使用 os.path.join 方法:
for path, subdirs, files in os.walk(folderTestPath):
for file in files:
filePath = os.path.join(path, file)
if "xyz" in open(filePath ,'r').read():
print("xyz")
print(filePath)
正如Eric提到的那样在阅读后关闭文件使用下面的代码片段:
import os
for path, subdirs, files in os.walk(folderTestPath):
for file in files:
filePath = os.path.join(path, file)
with open(filePath ,'r') as data:
if "xyz" in data.read():
print("xyz")
print(filePath)
data.close()