将一行块写入文件,每行有几个值,直到给出索引

Write into a file a block of lines with couple values at each line until index given

我将以下行块(83 行)包含在 data 文本数组中:

UseOmegam_ch 0
UseOmegaDE_ch 1
UseOmegab_ch 0
Usew0_ch 0
Usewa_ch 0
Useh_ch 0
Usens_ch 0
Usesigma8_ch 0
Usegamma_ch 1
Usesp_ch 1
Usesv_ch 1
UseGCspecbias_ch 0
UseGCspecPS_ch 1
UseWLAia_ch 0
UseWLBia_ch 0
UseWLnia_ch 0
UseGCphotbias_ch 0
VFidOmegam 0.32
VFidOmegaDE 0.68
VFidOmegab 0.05
VFidw0 -1
VFidwa 0
VFidh 0.67
VFidns 0.96
VFidsigma8 0.815534
VFidgamma 0.545455
VFidWLAia 1.72
VFidWLBia 2.17
VFidWLnia -0.41
VFidWLCia 0.0134
VFidAs 2.12605
VFidWnu 0.00143717
VStepOmegam 0.001
VStepOmegaDE 0.001
VStepOmegab 0.001
VStepw0 0.001
VStepwa 0.001
VSteph 0.001
VStepns 0.001
VStepsigma8 0.001
VStepgamma 0.001
VStepsp 0.001
VStepsv 0.001
VStepGCspecbias 0.0001
VStepGCspecPS 0.0001
VStepWLAia 0.001
VStepWLBia 0.001
VStepWLnia 0.001
VStepGCphotbias 0.0001
VSteplnDa 0.0001
VSteplnH 0.0001
VSteplnfs8 0.0001
XSAF_ch 0
SpecSAF_ch 0
FNF_ch 0
Camb_ch 1
Cutting_l_V 60
SavePrC_ch 0
UseGC_ch 0
UseWL_ch 0
UseXC_ch 0
VRS_bins 11
Vzmin 0.001
Vzmax 3.731
Vlnum 60
Vlmin_GCWL 10
Vlmax_GC 3000
Vlmax_WL 5000
VSurfArea 15000
VGdensity 30
Vprec_Int_z 100
zcut_ch 1
Vsig_epsilon 0.3
UsePZ_ch 0
Vzrange_0 0.636396
Valpha 1.5
Vphotoz_cb 1
Vphotoz_zb 0
Vphotoz_sigb 0.05
Vphotoz_c0 1
Vphotoz_z0 0.1
Vphotoz_sig0 0.05
Vphotoz_f_out 0.1

我正在寻找使用该块的最大行索引(因此在 python 符号中索引 52 或更确切地说是 51)将所有这些行(52 对第一对)的子块写入文件:

我试过了:

with open('../QTLauncher/Parameters_W.txt', 'w') as f:
  f.write(data[0:52])

但是这个命令行存储的是前52个字符,而不是前52行。

如何将数组 data 中包含的 52 对夫妇的第一行存储到 Parameters_W.txt 中?

如果您的数据存储在单个字符串中,您可以这样做:

with open("../QTLauncher/Parameters_W.txt", "w") as f:
    for line in data.splitlines()[0:52]
        f.write(line + "\n")

这会在每个换行符处拆分您的数据。然后迭代前 52 个元素并将它们写入文件。