我有一些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和regex,可以识别单词
"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))
但这没用:/
最佳答案
那应该做的工作:
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])
split函数使用字符串
"Overall evaluation:
作为分隔符