本帖最后由 jtwc 于 2024-1-7 21:25 编辑
各位老师,如何把下面的代码改为:如果合约名字存在且现在日增仓的值大于文件中第1个和第2个 "|" 中间的值,则更新文件中第1个和第2个 "|" 中间的值。如果合约名字不存在,按照格式 "DCE.cs2403|1843.0|0" 将合约名字和日增仓的值和0追加写入文件。[Python] 纯文本查看 复制代码 file_path = r"E:\T.txt" # 文件路径
temp_file_path = r"E:\T_temp.txt" # 临时文件路径
# 读取文件内容并存储到字典中
data = {}
with open(file_path, "r") as file:
for line in file:
contract, angle = line.strip().split("|")
data[contract] = angle
# 检查字典中是否已存在相同的合约名字,如果存在且现在[color=#24292f][backcolor=rgba(0, 0, 0, 0.05)][font="]日增仓[/font][/backcolor][/color]的值大于文件中的值,则更新[color=#24292f][backcolor=rgba(0, 0, 0, 0.05)][font="]日增仓[/font][/backcolor][/color]的值;如果不存在,则追加写入新的合约名字和[color=#24292f][backcolor=rgba(0, 0, 0, 0.05)][font="]日增仓[/font][/backcolor][/color]
if 合约名字 in data:
if float(日增仓[合约名字]) > float(data[合约名字]):
data[合约名字] = str(日增仓[合约名字])
print("合约名字:", 合约名字)
print("日增仓已更新为:", 日增仓[合约名字])
else:
print("合约名字:", 合约名字)
print("日增仓未更新")
else:
data[合约名字] = str(日增仓[合约名字])
print("合约名字:", 合约名字)
print("日增仓已写入")
# 将最终的字典内容写入临时文件
with open(temp_file_path, "w") as file:
for contract, angle in data.items():
file.write(contract + "|" + angle + "\n")
# 替换原始文件
os.replace(temp_file_path, file_path)
print("合约名字和日增仓已写入文件:", file_path)
|