python - 如何在 Python 中替换文件中的特定数字?
问题描述
我在 python 中遇到问题...我想替换文件中的数字,但我不知道如何。例如,我在文件中有这些数字:
3
5
76
35
9
在我尝试用 12 替换 5 之后,我将拥有这个文件
3
12
76
312
9
但我想让每一行都作为一个分隔号,正确的文件应该是这样的
3
12
76
35
9
不幸的是,我没有计划如何做到这一点。有人有想法吗?这是我的代码:
def Wert_aendern():
d = open("Datei.dat",'r')
filedata = d.read()
d.splitlines()
d.close()
a = input('Geben Sie bitte die zu ändernde Zahl ein')
b = input('Geben Sie bitte die neue Zahl ein')
newdata = filedata.replace(a, b)
d = open("Datei.dat",'w')
d.write(newdata)
d.close()
解决方案
如果您的示例所建议的输入文件中每行只有一个数字,您可以简单地将整行(去除尾随换行符后)与正在搜索的数字匹配,并输出替换字符串而不是原始行如果他们匹配。
另请注意,最好不要直接写回输入文件,而是写入临时文件,然后将其重命名为输入文件,以尽量减少由于中断而在回写过程中丢失数据的机会:
import os
with open('Datei.dat') as file, open('output.tmp', 'w') as output:
a = input('Geben Sie bitte die zu ändernde Zahl ein')
b = input('Geben Sie bitte die neue Zahl ein')
for line in file:
output.write(b + '\n' if line.rstrip('\n') == a else line)
os.rename('output.tmp', 'Datei.dat')
推荐阅读
- ibm-cloud - Watson STT(语音转文本)“。” 字母之间的句点
- c# - 为什么为命令错误提供的参数不足?
- vue.js - 如何将子组件添加到 createElement?
- paxos - 如果值相同,Paxos 提议者可以使用相同的选票号码吗?
- python-3.x - 如何将数据插入现有的 Excel 工作表?
- javascript - 如何附加数组中的字母以创建单词
- r - R中的XGBoost - 为什么我有错误:找不到对象?
- reactjs - 取消承诺拒绝,从 API 获取数据
- composer-php - 使用 composer 管理包时未捕获的 TYPO3 异常
- mobile - 如何在页面加载时隐藏移动浏览器的“工具栏”