python - 如何替换 for 循环中的行
问题描述
我正在编辑的文件
45940736:1330:0.266667:1602990684:10023084.555000
48545806:16000000:0.000000:9999999999:0.000000
1191125008:1185:37.408333:1602991293:10282893.310000
116776982:1811:0.637500:1602990076:10022476.137000
我的代码
f = open("values", "r+")
lines = f.readlines()
for i in lines:
if str(IDS) in i:
spl = i.split(":")
asset_id = spl[0]
value = spl[1]
volume = spl[2]
updated = spl[3]
item_age = spl[4]
new_line = asset_id + ":" + "this is a test" + ":"+ volume + ":" + updated + ":" + item_age
old_line = i
print(new_line)
我将如何在 for 循环中替换该行而不是做
lines[0] = new_line
ff = open('values', 'w')
ff.writelines(lines)
我不能这样做,因为有些文件会有 2k 值,我需要更改所有这些值。
解决方案
使用enumerate()
所以你得到列表中的索引,所以你可以替换元素。
for index, i in enumerate(lines):
if str(IDS) in i:
spl = i.split(":")
asset_id = spl[0]
value = spl[1]
volume = spl[2]
updated = spl[3]
item_age = spl[4]
new_line = asset_id + ":" + "this is a test" + ":"+ volume + ":" + updated + ":" + item_age
old_line = i
lines[index] = new_line
推荐阅读
- reactjs - 如何覆盖 Material-UI 隐藏组件的样式?
- csv - FileNotFoundError:[Errno 2] 文件 b'Downloads/BetterLifeIndex2015.csv' 不存在:b'Downloads/BetterLifeIndex2015.csv'
- java - 让 Box2D 在不同(模拟)高度处理碰撞的最佳方法是什么?
- c# - 如何统一循环播放音频?
- c++ - 快速读取 CSV 文件
- java - 使用 MyBatis + H2 配置 Spring Boot 身份验证/登录
- wpf - 相对源路径问题
- python - 如何制作为用户提供角色的 Discord 机器人命令?
- multithreading - lock cmpxchg 无法按核心顺序执行线程
- javascript - ApexCharts 数据未正确呈现