解析文件

时间:2016-04-05 20:08:58

标签: python function parsing split

我有一个包含10行和3列的.txt文件,所有制表符都已分隔。列包含数字或?。我想解析文件的每一行和哪里?被发现调用与列有关的某个功能?发现。我有三个功能,如果一个?在第1列中找到,然后调用function_a,如果在第2列中找到它,则调用function_b,如果在第3列中找到它,则调用function_c。

我看过这个尝试:

for line in fileinput.readlines():
     print(line.split("?"))

但我不确定如何获得一个特定的函数。

2 个答案:

答案 0 :(得分:0)

您应该在分隔符上拆分以获取该行的每个列的值:

for line in fileinput.readlines():
    a, b, c = line.split('\t')      # Variable unpacking; assumes each line has three columns
    if a == '?':
        function_a()
    if b == '?':
        function_b()
    if c == '?':
        function_c()

或者如果你是一个讨厌和丑陋的单行的粉丝:

[(function_a, function_b, function_c)[line.split('\t').index('?')]() for line in fileinput.readlines()]

答案 1 :(得分:0)

这可能会有所帮助:

function showPart(img, offsetTop, offsetLeft, width, height){
  var src = img.src;
    $(img).replaceWith("<canvas id='cnvs' style='max-width:100%;'></canvas>");
  var canvas = document.getElementById('cnvs');
  canvas.height = height;
  canvas.width = width;
  var ctx = canvas.getContext("2d");
  var img = new Image();
  img.onload = function(){
    ctx.drawImage(this, offsetLeft, offsetTop, width, height, 0, 0, width, height);
  };
  img.src = src;
}