gpt4 book ai didi

python - 用新值替换文件中的值数组

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:34 25 4
gpt4 key购买 nike

global file_platform
file_platform='karbarge.DAT'
Dir=30
Hs=4
Tp=12
dummy=[]
newval=[Dir, Hs, Tp]
def replace():
oldval=[]
line_no=[]
search_chars=['WaveDir', 'WaveHs', 'WaveTp']
with open(file_platform) as f_input:
for line_number, line in enumerate(f_input, start=1):
for search in search_chars:
if search in line:
first_non_space = line.strip().split(' ')[0]
x=search_chars.index(search)
dummy.append((search, first_non_space, line_number, x))
print (search, first_non_space, line_number, x)

i=0
j=0
for line in fileinput.input(file_platform, inplace=1):
print (i)
if i==eval(dummy[j][2]):
line = line.replace(eval(dummy[j][1]),str(newval[dummy[j][3]]))
j=j+1
sys.stdout.write(line)
i=i+1

return
replace()

目的是根据文件中的关键字选择第一个非空格值,并在其后附加索引。然后使用索引在同一文件中用新值替换它。我成功地选择了文件中的现有值,但可以相应地替换为新值并将其保存在相同的文件名中。这是代码,我试过了。任何人都可以建议对其进行修改或建议一个更好的简单明了的代码吗?

最佳答案

老实说,我并没有 100% 理解您的目标,但我想提出一个可能适合您需求的更清晰的解决方案。主要思想是获取旧文件的每一行,相应地替换值,将结果行存储在列表中,最后将此行列表存储在新文件中。

# This dict associates the old values to the values to which they should be changed
replacing_dict = {'WaveDir': Dir, 'WaveHs': Hs, 'WaveTp': Tp}

new_lines = []
with open(file_platform) as f_input:
for line in f_input:
first_non_space = line.strip().split(' ')[0]
if first_non_space in replacing_dict:
line.replace(first_non_space, replacing_dict[first_non_space])

new_lines.append(line)

# Write new_lines into a file and, optionally, replace this new file for the old file

关于python - 用新值替换文件中的值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35995289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com