我正在尝试解决此问题:
具有这样的树结构:
── geny16
│ ├── gen26xgeny16
│ │ ├── sustrato270
│ │ │ ├── sustrato270_data01.dat
│ │ │ ├── sustrato270_data02.dat
│ │ │ └── sustrato270_data03.dat
│ │ ├── sustrato90
│ │ │ ├── sustrato90_data01.dat
│ │ │ ├── sustrato90_data02.dat
│ │ │ └── sustrato90_data03.dat
│ │ ├── tentata0
│ │ │ ├── tentata0_data01.dat
│ │ │ ├── tentata0_data02.dat
│ │ │ └── tentata0_data03.dat
│ │ └── tenteta90
│ │ │ ├── tentata90_data01.dat
│ │ │ ├── tentata90_data02.dat
│ │ │ └── tentata90_data03.dat
│ └── gen40xgeny16
│ ├── sustrato270
│ ├── sustrato90
│ ├── tenteta0
│ └── tenteta90
└── geny9
├── gen16xgeny9
│ ├── sustrato270
├── sustrato90
│ ├── tenteta0
│ └── tenteta90
├── gen26xgeny9
│ ├── sustrato270
│ ├── sustrato90
│ ├── tenteta0
│ └── tenteta90
└── gen40xgen9y
├── sustrato270
├── sustrato90
├── tenteta0
└── tenteta90
每个较深的文件夹中都有一些.dat文件,我将使用matplotlib对其进行处理和绘制。当我在更深的文件夹中使用python脚本时,我的工作就完成了:读取每个数据文件,对列进行规范化,叠加并绘制数据;但由于每个深层文件夹都是相同的任务,因此我想将脚本保留在根文件夹中,并通过子文件夹来处理和绘制数据。
我可以使用此代码列出树中每个元素的名称:
rootDir = '.'
for dirName, subdirList, fileList in os.walk(rootDir):
print('Directorio encontrado: %s' % subdirList)
for fname in fileList:
print('\t%s' % fname)
但是这只是名称列表,如何使用此列表导航和执行脚本来处理和绘制每个较深文件夹中的数据?
感谢您的评论和建议。
古斯塔沃。
您可以使用pathlib
from pathlib import Path
root_dir = '.' # __file__
d = Path(root_dir).glob('*/*/*/*.dat') #*==any folder/file
for i in d:
print(i.name, i.parent, i.parts[-2])
print(i.resolve())
print(i.stem)
# code to manipulate these files here
# e.g read, visualise and store data
看看你得到什么。您可以使用文件进行任何操作