因此,我试图在文本文件中插入一个变量,并按如下所示对其进行了定义:
for filename in os.listdir("/home/gyanender/Desktop/s1d_gyanender"):
if filename.endswith("_s1d_A.fits"):
df = pd.DataFrame.from_dict(SN_dic,orient='index')
df = df.mean()
out_name = s1d_header['OBJECT'] +'-' + s1d_header['DATE-OBS'] +'.ares'
mine_opt = '/home/gyanender/bin/ARES/mine.opt'
file_opt=open(mine_opt,'w')
file_opt.writelines(("specfits=filename","\n","fileout=out_name","\n","rejt=df"))
file_opt.close()
所以最后我得到的是这样的东西,我得到了文本中变量的名称,但是我想要的是文本文件中那些变量的值,因为我必须将该文件作为输入另一个代码。
specfits='filename'
fileout='out_name'
rejt=df
为
filename = HARPS.2016-04-01T09:44:43.034_s1d_A.fits
out_name = Moon-2016-04-01T09:44:43.034.ares
rejt = 166.6 (As the values of df is 166.6)
所以我理想的文件应如下所示:
specfits='HARPS.2016-04-01T09:44:43.034_s1d_A.fits'
fileout='Moon-2016-04-01T09:44:43.034.ares'
rejt= 166.6
那么有人可以告诉我我在哪里犯错吗?
答案 0 :(得分:1)
你在做
file_opt.writelines(("specfits=filename","\n","fileout=out_name","\n","rejt=df"))
请注意,您实际上是在将字符串"specfits=filename"
打印到文件中。这里没有什么可以告诉代码,而不是您想要打印的代码。
我认为您想要的是用替代变量名称作为变量本身。这可以使用字符串格式来完成。假设python 3:
file_opt.writelines(("specfits={}".format(filename), "\n", "fileout={}".format(out_name), "\n", "rejt={}".format(df)))
在这里,字符串中的{}
被替换为format()
函数的参数。
如果您想在值周围使用单引号,则可以将其放在要打印的字符串中,例如"specfits='{}'"
答案 1 :(得分:0)
不要尝试发明轮子,选择一些存储方法并使用它。
此示例使用json:
organizations_with_user_role = Organization.joins(memberships: :role).
where(memberships: {user_id: user.id}).where(roles: {name: 'User'})
然后阅读它会很容易!
import json
data = { # create a dict with the data
'specfits': specfits,
'fileout': fileout,
'rejt': rejt,
}
with open(mine_opt, 'w') as file_opt:
json.dump(data, file_opt)