Python запись в поток строки - PullRequest
1 голос
/ 20 июля 2009

Часть моего сценария принимает значения и помещает их в текстовый файл, разделенный вкладками. Итак, у меня есть это:

for linesplit in fileList:
    for i in range (0, len(linesplit)):
        t.write (linesplit[i]+'\t')

Я получаю в качестве вывода в файле то, что ожидаю в первой строке, но в следующих строках все они начинаются с \ t, например:

value1    value2    value3
    value1    value2    value3
    value1    value2    value3

Кроме того, почему мне не нужно добавлять t.write ('\ n') после второго цикла FOR для создания новых строк? Я ожидаю, что приведенный выше код выдаст одну длинную строку значений, разделенных табуляцией, но это не так. Если я добавлю t.write ('\ n'), проблема с вкладками будет решена, но я получу двойное значение '\ n' ...

Ответы [ 6 ]

6 голосов
/ 20 июля 2009

это не дает того, что вы хотите, потому что оригинальные строки (linesplit) содержат символ конца строки (\n), который вы не удаляете. перед следующим вторым циклом вставьте следующее:

linesplit = linesplit.strip('\n')

Это должно сделать работу.

1 голос
/ 20 июля 2009

Ваши "value3" строки действительно "value3\n", что объясняет магические символы новой строки и посторонние вкладки на всех строках, кроме первой.

1 голос
/ 20 июля 2009

ваша переменная linesplit может иметь новые строки просто используйте strip (), чтобы удалить его.

1 голос
/ 20 июля 2009

Ваше последнее значение должно иметь "\ n", которое вызывает обе проблемы: первая проблема, потому что она выводит '\ t' после новой строки, вторая проблема должна быть очевидной - таинственные новые строки приходят из вашего последнего значения.

1 голос
/ 20 июля 2009

Извините ... После того, как я нажму, представьте, что меня осенило. В моем последнем значении уже есть \ n, что вызывает перевод строки.

0 голосов
/ 20 июля 2009

Внутренний цикл не требуется. Возможно, вы хотели использовать:

t.write('\t'.join(linesplit))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...