我是 Python 的新手,我正在使用它来编写 FeniCS FEA 模型来进行热传递。但是,除了将 for 循环产生的数千行代码写入文本文件之外,我还能够编写能够完成我想要它做的事情的代码。
每次执行该循环时,我都会将该输出打印到屏幕上,但尝试了该站点中有关写入文本文件的数十个答案,但都失败了。这是包含 for 循环的代码片段
for t in numpy.arange(0, t_end, Dt):
print 'Time ', t, 'Max_temp ', "%.3E " % T.vector().array().max()
line_n = int(abs(t / line_time))
hatch = 0.0002
if (line_n % 2) == 0
f.xx = (0.001 + vel*t - (length*line_n - mis))
else:
f.xx = (0.019 - vel*t + (length*line_n - mis))
f.yy = 0.001 + line_n * hatch
solve(A, T.vector(), b, 'cg')
print 'Line#', t,
timestep += 1
T0.assign(T)
Run Code Online (Sandbox Code Playgroud)
现在我想将两个打印语句的输出写入文本文件而不是将其写入屏幕。
PS我使用Linux机器
我从朋友那里收到了这个.h5文件,我需要使用其中的数据进行某些工作。所有数据均为数值。这是我第一次使用这类文件。我在这里找到了许多有关阅读这些文件的问题和答案,但是我找不到找到较低级别的文件包含的组或文件夹的方法。该文件包含两个主文件夹,即X和Y X包含一个名为0的文件夹,该文件夹包含两个名为A和B的文件夹。Y包含十个名为1-10的文件夹。我要读取的数据位于A,B,1,2,..,10中,例如我以
f = h5py.File(filename, 'r')
f.keys()
Run Code Online (Sandbox Code Playgroud)
现在f返回[u'X',u'Y']两个主文件夹
然后我尝试使用read_direct读取X和Y,但出现错误
AttributeError:“组”对象没有属性“ read_direct”
我尝试如下创建X和Y的对象
obj1 = f['X']
obj2 = f['Y']
Run Code Online (Sandbox Code Playgroud)
然后,如果我使用类似的命令
obj1.shape
obj1.dtype
Run Code Online (Sandbox Code Playgroud)
我得到一个错误
AttributeError:“组”对象没有属性“形状”
我可以看到这些命令不起作用,因为我在X和Y上使用了这两个文件夹,但它们不包含任何数据,但包含其他文件夹。
所以我的问题是如何进入名为A,B,1-10的文件夹以读取数据
即使在文档http://docs.h5py.org/en/latest/quick.html中,我也找不到解决方法