吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 681|回复: 7
收起左侧

[求助] 下面py代码如何改?

[复制链接]
jtwc 发表于 2024-1-7 21:19
本帖最后由 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=&quot]日增仓[/font][/backcolor][/color]的值大于文件中的值,则更新[color=#24292f][backcolor=rgba(0, 0, 0, 0.05)][font=&quot]日增仓[/font][/backcolor][/color]的值;如果不存在,则追加写入新的合约名字和[color=#24292f][backcolor=rgba(0, 0, 0, 0.05)][font=&quot]日增仓[/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)

      

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| jtwc 发表于 2024-1-7 21:28
各位老师,如何把下面的代码改为:如果合约名字存在且现在日增仓的值大于文件中第1个和第2个 "|" 中间的值,则更新文件中第1个和第2个 "|" 中间的值。如果合约名字不存在,按照格式 "DCE.cs2403|1843.0|0" 将合约名字和日增仓的值和0追加写入文件。
redballoon 发表于 2024-1-7 21:34
本帖最后由 redballoon 于 2024-1-7 21:37 编辑

你应该提供一个供测试的案例文件或demo,不然怎么知道你读的是什么样式或什么形式的内容,你这样问谁知道该怎么处理呢
 楼主| jtwc 发表于 2024-1-7 21:39
redballoon 发表于 2024-1-7 21:34
你应该提供一个供测试的案例文件或demo,不然怎么知道你读的是什么样式或什么形式的内容,你这样问谁知道该 ...

上面源码写如为"DCE.cs2403|1843.0
wang20 发表于 2024-1-7 21:49
我帮你问了下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[contract] = angle

    # 检查字典中是否已存在相同的合约名字,如果存在且现在日增仓的值大于文件中的值,则更新日增仓的值;如果不存在,则追加写入新的合约名字和日增仓的值
    if contract_name in data:
        if float(increase_value) > float(data[contract_name]):
            data[contract_name] = str(increase_value)
            print("合约名字:", contract_name)
            print("日增仓已更新为:", increase_value)
        else:
            print("合约名字:", contract_name)
            print("日增仓未更新")
    else:
        data[contract_name] = 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生成)
 楼主| jtwc 发表于 2024-1-7 21:52
wang20 发表于 2024-1-7 21:49
我帮你问了下ai工具
解析:

按照格式 "DCE.cs2403|1843.0|0"
sai609 发表于 2024-1-7 22:02
得把事件脉络背景说一下
Srao 发表于 2024-1-8 15:48
[Python] 纯文本查看 复制代码
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[contract] = (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)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表