我使用astropy.table.write(filename,path = run_dir)将astropy表写入名为dat.h5的文件中。但是我收到文件存在的错误,我在下面用pdb跟踪显示它没有。发生了什么事?
(Pdb) run_dir
'/Users/ms/run0'
(Pdb) os.system("ls " + run_dir)
param.txt temp_in.dat temp_out.dat
0
(Pdb) os.path.exists(run_dir + '/dat.h5')
False
(Pdb) dat_cube.write('dat.h5', format='hdf5', path=run_dir)
*** IOError: File exists: dat.h5
答案 0 :(得分:2)
path
变量应该是 hdf5文件中的路径(请参阅http://docs.astropy.org/en/stable/api/astropy.io.misc.hdf5.write_table_hdf5.html#astropy.io.misc.hdf5.write_table_hdf5;您可以在source中看到路径变量是不用于exists
检查)。它不是文件系统路径,因此您的os.path.exists
检查似乎在错误的位置。
所以,(1)检查os.getcwd
并查看是否存在dat.h5
,以及(2)尝试dat_cube.write(os.path.join(runpath, 'dat.h5'), format='hdf5', path="mypath")
。