python - 如何将字符串添加到文件中的奇数行?
问题描述
我正在尝试使用一些数组创建一个文件,并且我需要在文件的所有奇数行中添加一些数据。我还需要删除一些我用 .translate() 做的字符
np.savetxt('new_arrary.txt', dsc)
mi_path = 'new_arrary.txt'
j = open(mi_path,'r')
lines = j.readlines()
j.close()
y = 0;
for i, line in enumerate(lines):
if (i%2) != 0:
lines[i-1] = str(kp[y])+' '+str(a[y])+' '+str(b[y])+' '+str(a[y])+' '+lines[i-1]
y += 1
lines[i] = lines[i].translate({ord('('): ord(' ')})
lines[i] = lines[i].translate({ord(')'): None})
lines[i] = lines[i].translate({ord('['): None})
lines[i] = lines[i].translate({ord(']'): None})
lines[i] = lines[i].translate({ord(','): None})
j = open(mi_path,'w')
for k in lines:
j.write(k)
j.close()
有了这个我正在修改行,但它正在跳过一些行。示例:代码修改第 1 行然后第 5 行跳过第 3 行
解决方案
您的代码会引发类型错误,因此我建议您这样做:
import re
with open('oddlines.txt') as fp:
text = fp.read()
text = text.replace('(', ' ') # use .replace(..)
text = re.sub(r'[)[\],]', '', text) # .. and re.sub(..) to remove characters
lines = text.split('\n')
for i in range(1, len(lines), 2): # from 1, skip every other..
lines[i-1] = 'prefix:' + lines[i-1] # I don't know what your kp[y] etc. are, so I'm just adding a string prefix
for line in lines: # then either print to screen
print line
with open('oddlines.out', 'w') as fp: # or to file..
fp.write('\n'.join(lines))
与此文本oddlines.txt
:
first (line)
(second line)
th[i]rd line
fourth, line
fifth,line
first (line)
(second line)
th[i]rd line
fourth, line
fifth,line
上面的代码打印:
prefix:first line
second line
prefix:third line
fourth line
prefix:fifthline
first line
prefix: second line
third line
prefix:fourth line
fifthline
推荐阅读
- python - XCode/Swift 和 Python 文件 - 想要在 XCode 项目中嵌入 Python.py 文件
- node.js - 为什么我在 React 中得到最后一个函数调用结果
- python - 使用 pandas 解析 html 文件以提取特定表
- javascript - Rxjs:在条件下发出:数组属性与计时器
- cmake - 使用 otool -L 只显示库名称而不是它链接到的路径
- random - ARMv7 程序集,我该如何改进这个伪随机数生成器?
- powershell - PowerShell HTML 格式
- javascript - 防止在 hashchange 事件上跳转到锚点
- regex - 正则表达式用空格替换一个字符
- node.js - React 构建不适用于 axios 代理