#python
#python
Вопрос:
Я пытался выполнить запись в файл, но он продолжал записывать их в одной строке с запятыми и квадратными скобками на обоих концах. Как мне выполнить запись в файл без квадратных скобок, запятых и перевода строки для каждой строки файла. Столбец 6 должен оставаться отсортированным в порядке убывания.
Это вывод из приведенного ниже кода:
[NP_001026855.1, N, 1, YES, 96.4765%, 0.9823825] [NP_597716.1, D, 1, YES, 96.2573%, 0.9812865]
Вот мои коды.
lines = open("file.txt", "r").readlines()
outfile = open("file2.txt",'w ')
lines = [x.split() for x in lines]
lines.sort(key=lambda x:x[5], reverse=True)
for i in lines:
outfile.writelines(i)
Требуемый вывод должен быть:
NP_001026855.1 N 1 YES 96.4765% 0.9823825
NP_597716.1 D 1 YES 96.2573% 0.9812865
Спасибо, ребята, за ваш вклад.
Комментарии:
1. Ошибка типа: может объединять список (не «str») в список только при использовании outfile. запись (i «n»).
Ответ №1:
Каждый элемент lines
сам по себе является массивом. Попробуйте:
for i in lines:
outfile.write(" ".join(i) "n")
.join()
Метод принимает массив i
и объединяет все элементы вместе с пробелом " "
между каждым элементом. Затем добавляется новая строка "n"
, чтобы убедиться, что ваш вывод разбит на отдельные строки.
С другой стороны, вам даже не нужно сохранять разделенную копию всех строк:
lines = open("file.txt", "r").readlines()
outfile = open("file.2txt", "w")
lines.sort(key=lambda x: x.split()[5], reverse=True)
for i in lines:
outfile.write(i)
Комментарии:
1. Привет, Грег, большое спасибо. эта строка «outfile. write(» «.join(i) «n»)» совершает волшебство.