【问题标题】:Fetch data from another file从另一个文件中获取数据
【发布时间】:2015-06-22 17:46:12
【问题描述】:

是否可以从另一个文件中获取数据并将其与我的主输入文件进行比较并替换其中的字符串。我无法解释清楚,所以我只是给你看。

输入:

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

【问题讨论】:

    标签: python


    【解决方案1】:

    问题来了:

    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 对象,也以只读模式打开。

    为此,我建议您
    -->制作一个临时文件做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)
    

    【讨论】:

      猜你喜欢
      • 2020-09-25
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多