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)
請注意,這兩個片段均未經過測試,但我希望為您完成該任務。
添加回答
舉報