You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中通过用户输入更新文本文件中的值(以COVID病例RECOVERED字段为例)

嘿,我来帮你搞定这个问题!你的文本文件其实是标准的CSV格式(逗号分隔值),用Python处理这类更新需求非常方便,我会分两种方法给你讲解,还会加上用户输入的功能,让你可以交互式修改指定国家的RECOVERED字段值。

方法一:用Python内置csv模块(推荐)

这个模块是专门为CSV文件设计的,处理起来更规范,能避免很多手动拆分文本时的坑(比如字段里不小心出现逗号的情况)。

步骤1:基础修改版本

先看一个固定修改目标国家的示例,你能清楚看到整个流程:

import csv

# 这里先固定要修改的国家和新值,后面改成用户输入
target_country = "COUNTRYA"
new_recovered = "5"  # 转成字符串保持格式一致

# 读取文件内容,把每行转成字典(表头作为键)
rows = []
with open("covid_data.txt", mode="r") as file:
    reader = csv.DictReader(file)
    for row in reader:
        # 找到目标国家的行,更新RECOVERED字段
        if row["COUNTRY"] == target_country:
            row["RECOVERED"] = new_recovered
        rows.append(row)

# 把修改后的内容写回原文件
with open("covid_data.txt", mode="w", newline="") as file:
    # 用原表头来创建写入器
    writer = csv.DictWriter(file, fieldnames=reader.fieldnames)
    writer.writeheader()  # 先写表头
    writer.writerows(rows)  # 再写所有数据行

步骤2:加入用户输入功能

把上面的代码改成交互式的,让用户自己输入要修改的国家和数值:

import csv

# 获取用户输入
target_country = input("请输入要修改的国家名称(比如COUNTRYA):")
new_recovered = input("请输入新的RECOVERED数值:")

# 简单验证输入是否为整数(可选,但能提升程序健壮性)
if not new_recovered.isdigit():
    print("❌ 错误:RECOVERED数值必须是整数哦!")
else:
    # 读取文件内容
    rows = []
    with open("covid_data.txt", mode="r") as file:
        reader = csv.DictReader(file)
        fieldnames = reader.fieldnames  # 保存表头信息
        for row in reader:
            if row["COUNTRY"] == target_country:
                row["RECOVERED"] = new_recovered
            rows.append(row)
    
    # 写入修改后的内容
    with open("covid_data.txt", mode="w", newline="") as file:
        writer = csv.DictWriter(file, fieldnames=fieldnames)
        writer.writeheader()
        writer.writerows(rows)
    print(f"✅ 已成功更新{target_country}的RECOVERED值为{new_recovered}!")
方法二:手动处理文本行(适合简单场景)

如果你的文件格式特别简单,不会出现字段里包含逗号的情况,也可以直接按行读取拆分处理:

# 获取用户输入
target_country = input("请输入要修改的国家名称:")
new_recovered = input("请输入新的RECOVERED数值:")

if not new_recovered.isdigit():
    print("❌ 错误:RECOVERED数值必须是整数!")
else:
    # 读取所有行到列表里
    with open("covid_data.txt", "r") as file:
        lines = file.readlines()
    
    # 处理表头,找到RECOVERED对应的列索引
    header = lines[0].strip().split(",")
    recovered_index = header.index("RECOVERED")
    
    # 遍历数据行,修改目标国家的条目
    for i in range(1, len(lines)):
        parts = lines[i].strip().split(",")
        if parts[0] == target_country:
            parts[recovered_index] = new_recovered
            lines[i] = ",".join(parts) + "\n"
    
    # 把修改后的内容写回文件
    with open("covid_data.txt", "w") as file:
        file.writelines(lines)
    print(f"✅ 更新完成!{target_country}的RECOVERED值已改为{new_recovered}")
一些小提示
  • 记得把代码里的covid_data.txt替换成你实际的文件名哦。
  • 建议修改前先备份原文件,万一操作失误也能找回数据。
  • 如果你的文件特别大(比如几万行以上),可以考虑逐行处理并写入临时文件,最后替换原文件,这样能节省内存。

内容的提问来源于stack exchange,提问作者benj armintia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 17:32:44