是否可以从另一个文件中获取数据并将其与我的主输入文件进行比较并替换其中的字符串。我无法解释清楚,所以我只是告诉你。
输入:
Employee Number/Employee Name/Employee Extension
2022/Johnny Storm/188
2023/Reed Richards/189
2024/Sue Storm/190
2025/Ben Grimm/191
我的主输入文件中的日志仅打印员工编号:
Employee Number, Time In
2022,07:27:01
2025,06:59:49
2023,06:40:31
2024,06:40:28
所以我想做的就是......
伪代码:
with open(emplst) as ulst:
for line in ulst:
EmpNum,EmpName,EmpExt = (item.strip() for item in line.split('/'))
ulist[EmpNum] = dict(zip(('EmpNum'),(EmpName)))
if enum in EmpNum:
replace enum with EmpNum + "," + EmpName + " Ext. " + EmpExt
输出:
2022,Johnny Storm Ext. 188,07:27:01
注意: 我也在寻求这种方法的一些信息,但我一直无法替换文本:Extract data from lines of a text file
答案 0 :(得分:0)
问题在于:
with open(emplst) as ulst:
for line in ulst:
EmpNum,EmpName,EmpExt = (item.strip() for item in line.split('/'))
ulist[EmpNum] = dict(zip(('EmpNum'),(EmpName)))
ulst
不是可以简单分配值的字典。它是一个file
对象,在readonly模式下也是打开的。
为此,我建议你
- >制作一个临时文件write
修改后你想要的所有东西
- >删除原始文件
- >然后将临时文件重命名为原始文件。
有点像这样:
with open(emplst) as ulst:
with open("temp.txt", "w") as temp:
for line in ulst:
EmpNum,EmpName,EmpExt = (item.strip() for item in line.split('/'))
if enum in EmpNum:
temp.write(EmpNum + "," + EmpName + " Ext. " + EmpExt)
else:
temp.write(line) #dont touch it if record is not found
os.remove(emplst)
os.rename("temp.txt",emplst)