![](/img/trans.png)
[英]How to find span with class string by specific substring in the class python
[英]how to find specific string with a substring python
我有與此人類似的問題: 在字符串中查找子字符串的位置
區別在於我不知道我的“ mystr”是什么。 我知道我的子字符串,但輸入文件中的字符串可以是任意數量的隨機單詞,但是我知道其中一個單詞包含子字符串cola。
例如一個csv文件: fanta,coca_cola,sprite
(任意順序)。
如果我的子字符串是“可樂”,那么我該如何編寫一個如下代碼:
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")])
和first.csv:
fanta,cocacola,banana
0,1,0
1,2,1
所以它打印出來
new_cola
""
""
什么時候應該打印出來
new_cola
1
2
這是一個工作示例:
import csv
with open("first.csv", "rb") as fp_in, open("second.csv", "wb") as fp_out:
reader = csv.DictReader(fp_in)
writer = csv.writer(fp_out, delimiter = ",")
writer.writerow(["new_cola"])
def filter_cola(row):
for k,v in row.iteritems():
if "cola" in k:
yield v
for row in reader:
writer.writerow(list(filter_cola(row)))
筆記:
rows = [row for row in reader]
是不必要且效率低下的(在這里,您將生成器轉換為消耗大量內存來存儲大量數據的列表) return row.get("cola")
意思是return row.get(name)
return row.get("cola")
您可以訪問當前作用域之外的變量 您還可以使用unix工具剪切 。 例如:
cut -d "," -f 2 < first.csv > second.csv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.