2 回答
TA贡献1772条经验 获得超6个赞
干得好:
expr =[]
f = open('MCS_overlap.csv')
expr.append(f.read())
final_expr = expr[0].replace('\n', '|').replace(',', '&')
print(final_expr)
印刷:
'x1|x3&x5|x2|x4&x6|x5&x7|x6&x8|x7&x9|x6&x8&x10'
TA贡献2080条经验 获得超4个赞
因为您使用的是csvmodule,lines是一个列表,因此expr是一个元素全部为 x-es 和一些 pipeline 的列表|。您可以打印出来亲自查看。当您''.join(expr)这样做时,只是连接所有元素,没有逗号(即没有要替换的内容)。
这应该做
import csv
# Reads Boolean expression from cutsets file
with open("MCS_overlap.csv", "r") as csv_file:
csv_reader = csv.reader(csv_file)
# skip the first row
next(csv_reader)
lines = ('&'.join(line) for line in csv_reader)
final_expr = '|'.join(lines)
print(final_expr)
当然,你可以不使用csv模块
with open("MCS_overlap.csv", "r") as csv_file:
next(csv_file)
lines = (line.strip().replace(',', "&") for line in csv_file)
final_expr = '|'.join(lines)
print(final_expr)
请注意,这两个片段均未经过测试,但我希望为您完成该任务。
添加回答
举报