2 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
干得好:
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貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
因?yàn)槟褂玫氖莄svmodule,lines是一個(gè)列表,因此expr是一個(gè)元素全部為 x-es 和一些 pipeline 的列表|。您可以打印出來(lái)親自查看。當(dāng)您''.join(expr)這樣做時(shí),只是連接所有元素,沒有逗號(hào)(即沒有要替換的內(nèi)容)。
這應(yīng)該做
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)
當(dāng)然,你可以不使用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)
請(qǐng)注意,這兩個(gè)片段均未經(jīng)過測(cè)試,但我希望為您完成該任務(wù)。
添加回答
舉報(bào)