Ошибка типа: можно объединить только список (не «str») в список, создать скрипт, который объединяет значения

#python #python-3.x #list #python-2.7 #python-requests

#python #python-3.x #Список #python-2.7 #python-запросы

Вопрос:

Я пытаюсь создать скрипт, который объединяет значения в файлах в столбцы. Но, к сожалению, я получаю сообщение об ошибке: «TypeError: можно объединить только список (не»str») в список»

Что я делаю не так?

 import re
inputList = []
for file in ['text1.txt','text2.txt']:
    with open(file,'r') as infile:
        k = 0
        for line in infile:
            i = 0
            if i < len(inputList) and k:
                inputList[i].extend(re.sub('[^A-Za-z0-9,] ', '', line).split(","))
            else :
                inputList.append(re.sub('[^A-Za-z0-9,] ', '', line).split(","))
            i  = 1
        k = 1
print(inputList)
with open('text3','w') as outfile:
    for line in inputList:
        outfile.write(line   'n')
 

Комментарии:

1. Я думаю, ошибка не из-за текущего кода. Можете ли вы указать, какая строка выдает ошибку? Это будет указано в вашем сообщении об ошибке.

2. @Rahul К сожалению, ошибка возникает в строке 17. » Трассировка (последний последний вызов): Файл «D:script.py «, строка 17, в исходном файле <module>. запись (строка ‘n’) Ошибка типа: может объединять только список (не «str») в список »

3. Понял. Это имеет смысл.

Ответ №1:

Вы не можете объединить список со строкой.

В вашем коде line есть list , и вы пытаетесь объединить его с 'n' a str . Я не знаю, что вы пытаетесь выполнить здесь, но для того, чтобы ваш код работал, вы можете сделать что-то вроде outfile.write('f{line}n') .

Я бы рекомендовал вместо этого использовать встроенный json модуль. Json лучше всего работает с list dict данными или str с ними.

 import json
with open('text3','w') as outfile:
    json.dump(inputList, outfile)
 

Комментарии:

1. Я вставил это в код, который вы рекомендовали. Все было сохранено в файл, но в результате все значения были сохранены в одной строке. И мне нужны два столбца и как таблица в соответствии со списком.

2. Если вы можете включить входные и ожидаемые выходные данные, будет полезно