質問があります。入力ファイル名を使用して出力ファイルの名前を変更するにはどうすればよいですか?入力ファイル名を使用して新しいファイルを作成する
例えば、私の入力ファイル名は次のとおりです。
Field_52_combined_final_roughcal.fits
ように私は、出力ファイル名を取得したい:私は書くことができることを知っている
Field_52_traitement_1.fits
:
hdu.writeto('Field_52_traitement_1.fits')
しかし、私は200のファイルをループする他のスクリプトを持っています。入力ファイル名
私のスクリプトは、この(1つの入力ファイル用)のようになります。
#!/usr/bin/python
# coding: utf-8
from astropy.io import fits
from astropy.table import Table
import numpy as np
###################################
# Fichier contenant le champ brut #
###################################
filename = 'E:/Fields/Field52_combined_final_roughcal.fits'
# Ouverture du fichier à l'aide d'astropy
field = fits.open(filename)
# Lecture des données fits
tbdata = field[1].data
#######################################################
# Application du tri en fonction de divers paramètres #
#######################################################
Several conditions/sort
###################################################
# Ecriture du résultat dans nouveau fichier .fits #
###################################################
hdu = fits.BinTableHDU(data=tbdata_final)
hdu.writeto('{}_{}'.format(filename,'traitement_1'))
しかし、スクリプトのこの種で、私が手:あなたが任意のアイデアを持っている場合
Field_52_combined_final_roughcal.fits_traitement_1
は、教えてください、ウェブサイトまたは他の何か: あなたの答えをありがとう!
だからあなたのコード、使用することを適用する
あなたが使用することができます'os.path'関数は、ファイル名を拡張子から区切ったり、一貫してアンダースコアを使うように見えるので、ファイル名のすべての部分のリストを取得するために' filename.split( "_") 'を実行するだけです。その後、リストのインデックスを使用して別の順序で一緒に戻すことができます。インデックス0は「フィールド」、インデックス1は「52」などとなります。その後、新しいファイル名を作成するために "_"。join() 'することができます。 – jDo
あなたの答えをありがとう。私はスプリットメソッドを使用し、それは仕事です: – Deadpool