【问题标题】:python script to carve up csv data分割csv数据的python脚本
【发布时间】:2016-11-14 17:32:36
【问题描述】:

我有一些看起来像这样的 csv 数据:

724 "Overall evaluation: 2
Invite to interview: 2
Strength or novelty of the idea (1): 3
Strength or novelty of the idea (2): 3
Strength or novelty of the idea (3): 2
Use or provision of open data (1): 3
Use or provision of open data (2): 3
""Open by default"" (1): 2
""Open by default"" (2): 2
Value proposition and potential scale (1): 3
Value proposition and potential scale (2): 4
Market opportunity and timing (1): 3
Market opportunity and timing (2): 4
Triple bottom line impact (1): 4
Triple bottom line impact (2): 3
Triple bottom line impact (3): 2
Knowledge and skills of the team (1): 4
Knowledge and skills of the team (2): 4
Capacity to realise the idea (1): 4
Capacity to realise the idea (2): 4
Capacity to realise the idea (3): 3
Appropriateness of the budget to realise the idea: 4"
724 "Overall evaluation: 1
Invite to interview: 1
Strength or novelty of the idea (1): 2
Strength or novelty of the idea (2): 2
Strength or novelty of the idea (3): 3
Use or provision of open data (1): 2
Use or provision of open data (2): 2
""Open by default"" (1): 3
""Open by default"" (2): 3
Value proposition and potential scale (1): 2
Value proposition and potential scale (2): 2
Market opportunity and timing (1): 2
Market opportunity and timing (2): 2
Triple bottom line impact (1): 2
Triple bottom line impact (2): 2
Triple bottom line impact (3): 1
Knowledge and skills of the team (1): 4
Knowledge and skills of the team (2): 2
Capacity to realise the idea (1): 2
Capacity to realise the idea (2): 2
Capacity to realise the idea (3): 1
Appropriateness of the budget to realise the idea: 3"

使用 python 和正则表达式,是否可以识别单词"Overall evaluation: 的每个实例并记录该数字,在本例中为724"Overall evaluation: 之后的值,即2,这样我们将剩下:

724, 2
724, 1

例如。

如果是这样,如何实现这样的逻辑?

我试过这样:

f=open("1.txt",'r').read().splitlines()
head='0'
body=[]
for x in f:
    if x=="\n" or x.strip()=='':
        continue
    try:
        int(x[0])
        print(head +':'+'+'.join(body))
        tmp=x.split()
        head=tmp[0]+'-'+tmp[1]
        body=[tmp[4]]
    except ValueError as e:
        body.append(x.split(':')[1].strip().strip('\"'))
print(head +':'+'+'.join(body))

但它不起作用:/

【问题讨论】:

    标签: python regex csv


    【解决方案1】:

    这应该做的工作:

    lines=open("1.txt",'r').read().splitlines()
    for l in lines:
        data = l.split(' "Overall evaluation: ')
        if len(data) == 2:
            print(data[0] + ", " + data[1])
    

    分割函数使用字符串"Overall evaluation:作为分隔符

    【讨论】:

    • 我会用 '"Overall evaluation: ' 拆分,包括空格......但一个很好的答案。
    • @user2177047 已修复
    猜你喜欢
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2015-01-27
    • 2022-07-07
    • 1970-01-01
    • 2020-01-29
    相关资源
    最近更新 更多