【发布时间】:2014-04-15 10:52:11
【问题描述】:
我和这个人有类似的问题:find position of a substring in a string
不同之处在于我不知道我的“mystr”是什么。我知道我的子字符串,但我在输入文件中的字符串可以是任意数量的随机单词,但我知道其中一个单词包括子字符串 cola。
例如 csv 文件:fanta,coca_cola,sprite 任意顺序。
如果我的子字符串是“cola”,那我怎么能写出这样的代码
mystr.find('cola')
或
match = re.search(r"[^a-zA-Z](cola)[^a-zA-Z]", mystr)
或
if "cola" in mystr
当我不知道我的“mystr”是什么时?
这是我的代码:
import csv
with open('first.csv', 'rb') as fp_in, open('second.csv', 'wb') as fp_out:
reader = csv.DictReader(fp_in)
rows = [row for row in reader]
writer = csv.writer(fp_out, delimiter = ',')
writer.writerow(["new_cola"])
def headers1(name):
if "cola" in name:
return row.get("cola")
for row in rows:
writer.writerow([headers1("cola")])
和第一个.csv:
fanta,cocacola,banana
0,1,0
1,2,1
打印出来
new_cola
""
""
什么时候打印出来
new_cola
1
2
【问题讨论】:
-
first.csv:mean 中的这些数字是什么意思?他们是想要的结果吗?
-
你应该解释一下你是如何得到mystr的,为什么你期望在“新可乐”下有1,2。
-
当你打电话给
headers1("cola")时,当然"cola" in name;name == "cola"!我认为你需要重新考虑你的方法。尝试查看rows中的实际内容。mystr只是一个填充变量 - 它是您尝试处理的任何字符串,在本例中为name。