присоединение Python к «большому» файлу - PullRequest
1 голос
/ 26 мая 2011

В python я прочитал файл в список, используя file.readlines(), позже, после некоторой логики, я хотел бы собрать его обратно в строку, используя fileString = ''.join(file), по некоторым причинам, даже без print функция, она выводит fileString на консоль до определенной точки, затем просто останавливается.Он не запускает остальную часть программы, которая для меня бесполезна.

Почему join делает это, как мне, возможно, предварительно выделить, сколько памяти я бы хотел, чтобы мой список / строка использовался так, чтобы онне останавливаетсяИли другое решение тоже.

Спасибо

Ответы [ 2 ]

2 голосов
/ 26 мая 2011

Файл - это указатель вашего файла в памяти.Когда вы пытаетесь присоединиться к нему, у вас фактически нет строки для работы.

Как насчет этого?

with open(file, 'rb') as myfile:
    strings = myfile.readlines()

# do your stuff to strings
filestring = ''.join(strings)

Обратите внимание, что строки - это список строк, подобных этому:

['my line \ n', 'my otherстрока! \ n ']

И, таким образом, большой файл потребует совсем немного памяти.Вам может быть лучше обслужить, построив мини-фильтр.

0 голосов
/ 26 мая 2011

Вы должны также рассмотреть, что вы собираетесь делать с полученной строкой. Если вы просто хотите записать содержимое обратно в файл, нет необходимости сначала объединять части, вы можете использовать file.writelines(strings) напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...