我有目录结构:
LinearLayout
等
所有目录都有不同的名称,但FILE具有相同的名称。 每个文件都有三行。 我的问题是如何以最快的方式阅读这三行以及每个FILE?
我编写了搜索FILE的代码。但仍然不知道如何阅读所有这些。看看这个:
--- main_dir
------ aaa
--------subaaa
----------file
------ xxx
--------subxxx
----------file
------ 111
--------sub111
----------file
我想实现类似的目标:
import os
def list_files(dir):
r = []
for root, dirs, files in os.walk(dir):
for name in files:
r.append(os.path.join(root, name))
return r, print(r)
list_files('some_path)
答案 0 :(得分:1)
要有效地找到名为1.txt的每个文件并打印它的前缀为文件名的内容将是:
find . -name '1.txt' -exec awk '{print FILENAME, $0}' {} +
如果这不是您想要的所有内容,请编辑您的问题以澄清。
答案 1 :(得分:0)
考虑使用:
import os
listOfFiles = os.listdir("the absolute path to main_dir")
for fileName in listOfFiles:
print fileName
# read the lines of fileName
with open(fileName) as f:
contentOfFile = f.readlines()
答案 2 :(得分:0)
我找到了打开FILE的解决方案,这里是代码:
import os
def list_files(dir):
r = []
for root, dirs, files in os.walk(dir):
for name in files:
r.append(os.path.join(root, name))
with open(os.path.join(root, name)) as f:
print(f.readlines())
return r, print(r)
list_files('C:\gpdw-feeds')
现在我的结构有问题。 如何列出最后一个子文件夹中的ONLY文件? 例如:
---main_dir
----sub
-----file1
----sub_sub
-----file2
我想只读取file2,但我的代码会读取所有子文件中的所有文件。