1

FITS ファイルのヘッダーにあるキーワードの値を変更しようとしています。非常に簡単ですが、これはコードです:

import pyfits

hdulist = pyfits.open('test.fits') # open a FITS file
prihdr = hdulist[1].header

print prihdr['AREASCAL']

effarea = prihdr['AREASCAL']/5.
print effarea
prihdr['AREASCAL'] = effarea

print prihdr['AREASCAL']

手順を何度も印刷して、値が正しいことを確認します。そして彼らは。問題は、後で FITS ファイルを確認すると、ヘッダーのキーワード値が変更されていないことです。なぜこれが起こるのですか?

4

3 に答える 3

1

ファイルを読み取り専用モードで開いています。これにより、メモリ内オブジェクトの変更が妨げられることはありませんが、ファイルを閉じたりフラッシュしたりしても (この質問に対する他の回答で示唆されているように)、ファイルは変更されません。ファイルを更新モードで開く必要があります。

hdul = pyfits.open(filename, mode='update')

または、 with ステートメントを使用することをお勧めします。

with pyfits.open(filename, mode='update') as hdul:
    # Make changes to the file...
    # The changes will be saved and the underlying file object closed when exiting
    # the 'with' block
于 2013-11-18T18:56:50.520 に答える
1

変更を書き戻すには、ファイルを閉じるか、明示的にフラッシュする必要があります。

hdulist.close()

また

hdulist.flush()
于 2013-11-15T08:58:07.993 に答える