下面py代码如何改?
本帖最后由 jtwc 于 2024-1-7 21:25 编辑各位老师,如何把下面的代码改为:如果合约名字存在且现在日增仓的值大于文件中第1个和第2个 "|" 中间的值,则更新文件中第1个和第2个 "|" 中间的值。如果合约名字不存在,按照格式 "DCE.cs2403|1843.0|0" 将合约名字和日增仓的值和0追加写入文件。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 = angle
# 检查字典中是否已存在相同的合约名字,如果存在且现在日增仓的值大于文件中的值,则更新日增仓的值;如果不存在,则追加写入新的合约名字和日增仓
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)
各位老师,如何把下面的代码改为:如果合约名字存在且现在日增仓的值大于文件中第1个和第2个 "|" 中间的值,则更新文件中第1个和第2个 "|" 中间的值。如果合约名字不存在,按照格式 "DCE.cs2403|1843.0|0" 将合约名字和日增仓的值和0追加写入文件。 本帖最后由 redballoon 于 2024-1-7 21:37 编辑
你应该提供一个供测试的案例文件或demo,不然怎么知道你读的是什么样式或什么形式的内容,你这样问谁知道该怎么处理呢 redballoon 发表于 2024-1-7 21:34
你应该提供一个供测试的案例文件或demo,不然怎么知道你读的是什么样式或什么形式的内容,你这样问谁知道该 ...
上面源码写如为"DCE.cs2403|1843.0 我帮你问了下ai工具
解析:
首先,我们需要获取合约名字和日增仓的值。这可以通过函数参数或者用户输入来实现。
然后,我们需要检查合约名字是否在字典中存在。如果存在,我们需要比较现在的日增仓值和文件中的值,如果现在的日增仓值大于文件中的值,我们就更新文件中的值。如果不存在,我们就将合约名字和日增仓的值追加写入文件。
最后,我们将更新后的字典内容写入临时文件,然后替换原始文件。
代码如下:
python
复制代码
import os
def update_contract(file_path, temp_file_path, contract_name, increase_value):
# 读取文件内容并存储到字典中
data = {}
with open(file_path, "r") as file:
for line in file:
contract, angle = line.strip().split("|")
data = angle
# 检查字典中是否已存在相同的合约名字,如果存在且现在日增仓的值大于文件中的值,则更新日增仓的值;如果不存在,则追加写入新的合约名字和日增仓的值
if contract_name in data:
if float(increase_value) > float(data):
data = str(increase_value)
print("合约名字:", contract_name)
print("日增仓已更新为:", increase_value)
else:
print("合约名字:", contract_name)
print("日增仓未更新")
else:
data = str(increase_value)
print("合约名字:", contract_name)
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)
你可以通过调用这个函数来更新合约名字和日增仓的值,例如:
python
复制代码
update_contract(r"E:\T.txt", r"E:\T_temp.txt", "DCE.cs2403", "1843.0")
(内容由讯飞星火AI生成) wang20 发表于 2024-1-7 21:49
我帮你问了下ai工具
解析:
按照格式 "DCE.cs2403|1843.0|0" 得把事件脉络背景说一下 import os
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, value = line.strip().split("|")
data = (float(angle), float(value))
# 替换以下变量为您的实际值
合约名字 = "your_contract_name"
日增仓 = {"your_contract_name": "your_daily_increase_value"}
# 检查字典中是否已存在相同的合约名字
if 合约名字 in data:
current_angle, current_value = data[合约名字]
# 如果现在日增仓的值大于文件中的值,则更新文件中的值
if float(日增仓[合约名字]) > current_value:
data[合约名字] = (float(日增仓[合约名字]), current_value)
print("合约名字:", 合约名字)
print("日增仓已更新为:", 日增仓[合约名字])
else:
print("合约名字:", 合约名字)
print("日增仓未更新")
else:
# 如果合约名字不存在,则按照格式追加写入新的合约名字和日增仓的值和0
data[合约名字] = (float(日增仓[合约名字]), 0)
print("合约名字:", 合约名字)
print("日增仓已写入")
# 将最终的字典内容写入临时文件
with open(temp_file_path, "w") as file:
for contract, (angle, value) in data.items():
file.write(f"{contract}|{angle}|{value}\n")
# 替换原始文件
os.replace(temp_file_path, file_path)
print("合约名字和日增仓已写入文件:", file_path)
页:
[1]