【发布时间】:2019-10-02 21:13:12
【问题描述】:
使用python,如何遍历Test.txt文件中的每一行并搜索Android.mk文件,如果没有找到,则上一级目录并再次搜索直到找到文件?
/home/jenkins/workspace/art/build/apps/XYZ.cpp
在上述路径中,Android.mk 位于以下位置
/home/jenkins/workspace/art/build/apps/Android.mk
/home/jenkins/workspace/art/build/Android.mk
/home/jenkins/workspace/frameworks/base/rs/ABC.java
在上述路径中,Android.mk 位于以下位置
/home/jenkins/workspace/frameworks/Android.mk
Test.txt
/home/jenkins/workspace/art/build/apps/XYZ.cpp /home/jenkins/workspace/frameworks/base/rs/ABC.java
DesireOutput.txt
/home/jenkins/workspace/art/build/apps/Android.mk
/home/jenkins/workspace/frameworks/Android.mk
我的尝试
with open('/data/jenkins/workspace/Experiments/Test.txt','r') as f:
for apps in f.readlines():
print(apps.strip())
dirs = os.listdir( apps.strip() )
for file in dirs:
#print file
if file == 'Android.mk':
print "Android.mk found"
else:
os.chdir(apps.strip())
apps.strip()
print "Android.mk not found"
【问题讨论】:
-
你已经尝试过什么?你知道
os.walk吗? -
@wjandrea 我认为 OP 可能在这里寻找
os.listdir(),因为他似乎想搜索特定文件夹 -
@Reedinationer 哦,对了,
os.walk下降,但 OP 想要a下降。 -
@wjandrea 也有
topdown=False选项os.walk()。也许这就是OP想要的。或者他们可能会os.listdir('/home/jenkins/workspace/art/build/apps')然后os.listdir('/home/jenkins/workspace/art/build')(当然是自动的)。如果没有他们的代码示例尝试,很难判断什么是最好的 -
嗨,Wjandrea,@Reedinationer - 我有示例代码,但它在 bash 中。如果我有一个 while 循环,它正在寻找文件名“Android.mk”,如果没有找到它会“cd .." 然后再看一遍.. 我想知道是否有更好的方法来使用 python 来做到这一点......