我想读取一个csv文件列表在这个python程序。文件test.csv只包含一行不同的数字。我想找到总和等于500的数字的可能组合,并且在获得输出作为列表之后,python程序将在我的test.csv文件中追加这个列表。不支持的操作数类型为+:'int'和'list'
csv_file.py
import sys
import csv
import os
file_name="test.csv"
path1 = "C:\MAYANK\python p"
path2 = os.path.join(path1, file_name)
with open(path2, 'r') as csv_file:
reader = csv.reader(csv_file, delimiter=",")
row1 = list(reader)
def subset_sum(numbers, target, partial=list()):
s = sum(partial)
# check if the partial sum is equals to target
if s == target:
with open(path2, 'a') as csv_file1:
writer = csv.writer(csv_file1)
writer.writerow(partial)
if s >= target:
return # if we reach the number why bother to continue
for i in range(len(numbers)):
n = numbers[i]
remaining = numbers[i + 1:]
subset_sum(remaining, target, partial + [n])
if __name__ == '__main__':
subset_sum(row1, 500)
我写的所有代码,但得到这个错误:
Traceback (most recent call last):
File "csv_file.py", line 33, in <module>
subset_sum(row1, 500)
File "csv_file.py", line 30, in subset_sum
subset_sum(remaining, target, partial + [n])
File "csv_file.py", line 17, in subset_sum
s = sum(partial)
TypeError: unsupported operand type(s) for +: 'int' and 'list'
此功能对有效输入正常工作,所以你没有正确地得到输入。 – TemporalWolf