【发布时间】:2019-02-23 18:58:43
【问题描述】:
我正在寻找一种方法来使我的 python 脚本处理具有相同名称但位于多个目录中的数据。具体来说,我希望在不同的时间步骤从数据中制作图像。我有一个代码可以解析数据并一次创建一个图像,但我宁愿让它遍历所有目录并为我完成这一切,而不是手动完成。
目录/文件的格式如下:
主目录:
- 文件名:2Dvizualization.py
目录1:td.0000000
- 文件名:sqm-wf-k001-st0001.dx
- 文件名:sqm-wf-k001-st0001_gs.dx
目录2:td.0000400
- 文件名:sqm-wf-k001-st0001.dx
- 文件名:sqm-wf-k001-st0001_gs.dx
目录 3:td.0000800
- 文件名:sqm-wf-k001-st0001.dx
- 文件名:sqm-wf-k001-st0001_gs.dx
。 . .
Dir_final: td.016400
- 文件名:sqm-wf-k001-st0001.dx
- 文件名:sqm-wf-k001-st0001_gs.dx
我手动编写的脚本是:
import numpy as np
import matplotlib.pyplot as plt
//size of the grid for each spatial dimension
sizex = 267
sizey = 267
sizez = 201
//below the data is parsed and made into an array
sqm_data_gs = np.genfromtxt('sqm-wf-k001-st0001_gs.dx',skip_header = 7,skip_footer = 5)
sqm_data = np.genfromtxt('sqm-wf-k001-st0001.dx',skip_header = 7,skip_footer = 5)
sqm_dat_gs = np.array(sqm_data_gs)
sqm_dat = np.array(sqm_data)
sqm_data_array = np.reshape(sqm_dat,(sizex,sizey,sizez))
sqm_data_array_gs = np.reshape(sqm_dat_gs,(sizex,sizey,sizez))
sqm_diff = sqm_data_array - sqm_data_array_gs
plt.imshow(sqm_diff[:,:,sqm_diff.shape[2]//2],interpolation = 'quadric',origin = 'lower',extent=[-20,20,-20,20])
plt.xlim([-3,3])
plt.ylim([-3,3])
//plt.show()
plt.savefig('sqm0001.png')
我想将每个图像保存到一个名为 sqm****.png 的文件中。
有没有办法遍历所有这些目录并输出图像?
任何见解将不胜感激。
谢谢!
【问题讨论】:
-
创建目录名\路径列表;遍历列表;对于每个目录名称/路径,使用
os.path.join()为该目录中的文件创建一个 完整 路径;使用该路径来处理文件。
标签: python numpy image-processing imshow subdirectory