使用Python

时间:2015-12-07 10:41:52

标签: python parsing text multiple-columns

我正在尝试从文本文件中的列中提取数据。其中一个列有一个标题,我还需要提取一个包含标题重复条目的整列,即:

col1 col2 col3
1     1     1
2     2     2
3     3     3

成:

col1 col2 col3  col3
1     1     1   col3
2     2     2   col3
3     3     3   col3

我正在努力隔离标题。

for line in my_file:
    line = line.split("\t")
    column = line[0:3] #col1-3

如何从col3获取标题然后重复它?我是否必须首先按"\n"分割,然后按"\t"分割?

我尝试这样做但收到错误消息?

3 个答案:

答案 0 :(得分:0)

您可以使用Python的 public ActionResult Submit() { Customer custObj = new Customer(); custObj.CustomerCode = Request.Form["CustomerCode"]; custObj.CustomerName = Request.Form["CustomerName"]; if (ModelState.IsValid) return View("Load", obj); else return View("EnterCustomer"); } 模块,如下所示。这可以自动处理所有列的拆分。默认情况下,它假定列以逗号分隔,但可以通过指定要使用的分隔符将其切换到选项卡:

public ActionResult Submit(Customer obj)
    {
        //Customer custObj = new Customer();
        //custObj.CustomerCode = Request.Form["CustomerCode"];
        //custObj.CustomerName = Request.Form["CustomerName"];

        if (ModelState.IsValid)
            return View("Load", obj);
        else
            return View("EnterCustomer");
    }

对于您的给定输入,您将获得以下输出(列以制表符分隔):

CSV

使用Python 2.7.9进行测试

答案 1 :(得分:0)

为什么不使用熊猫。

     import pandas as pd
     df = pd.read_csv("filename.tsv",sep="\t")

为了获得列标题,您还可以使用

      df.ix[:,2:]

答案 2 :(得分:0)

with open('/home/prashant/Desktop/data.txt') as f:
for l in f:
    print l.strip( ).split("\n")

这可能会解决我遇到的问题结果

  

[col1 col2 col3]

     

[1 1 1]

     

[2 2 2]

     

[3 3 3]