Форум сайта python.su
Подскажите, пожалуйста почему при открытии файла и сохранении его содержимого в переменной srt1 не получается сохранить это же содержимое файла в в другой переменной list1? выдает пустой список
myfile_in = open("reading_in.txt", "r") str1 = myfile_in.read() print(str1) list1 = myfile_in.read().split() print(list1) myfile_in.close()
Отредактировано FishHook (Сен. 13, 2019 11:39:46)
Офлайн
nkareva
list1 = myfile_in.read().split()
list1 = str1.split()
Офлайн
nkareva
Представьте, что при открытии файла вы получаете указатель на его начало. Вы можете читать файл посимвольно, построчно, пословно - как угодно, чтение - это перемещение указателя на n позиций от начала к концу. Файл может быть очень большим, больше чем у вас есть оперативной памяти, понятно, что никто не читает весь большой файл в память сразу, читают порциями. Для этого и придумана магия с указателем. А метод read делает как раз это - считывает весь файл. После этого указатель указывает на конец файла, и больше вы ничего считать не можете. Вам надо переместить указатель на начало, для этого есть если не ошибаюсь метод seek.
Офлайн
Спасибо огромное!
Теперь ясно!!
Почему-то нигде в учебниках не встречала этого момента!
Офлайн
vic57Да, это понятно, что можно сделать из строки список. У меня вопрос был именно почему список пустой. Но теперь ясно! Спасибо огромное!!
Офлайн
Да метод seek
Вот так работает:
myfile_in = open(“reading_in.txt”, “r”)
str1 = myfile_in.read()
print(str1)
myfile_in.seek(0)
list1 = myfile_in.read().split()
print(list1)
myfile_in.close()
Спасибо еще раз!!
Офлайн
myfile_in = open('reading_in.txt', 'r') str1 = myfile_in.read() print(str1) myfile_in.seek(0) list1 = myfile_in.read().split() print(list1) myfile_in.close()
myfile_in = open('reading_in.txt', 'r) str1 = myfile_in.read() myfile_in.close() print(str1) list1 = str1.split() print(list1)
Отредактировано marvellik (Сен. 16, 2019 15:30:26)
Офлайн
nkarevaДа у тебя много ошибок. Непонятно, какие учебники ты читала вообще. Читай Dive Into Python 3. Книжка бесплатная; есть русский перевод, хотя и в оригинале легко воспринимается.
Почему-то нигде в учебниках не встречала этого момента!
Отредактировано py.user.next (Сен. 17, 2019 01:53:46)
Офлайн
py.user.nextОшибки неизбежны. На ошибках учатся. Если нетрудно, напиши, какие ошибки, хотя бы парочку самых критичных.
Да у тебя много ошибок. Непонятно, какие учебники ты читала вообще. Читай Dive Into Python 3. Книжка бесплатная; есть русский перевод, хотя и в оригинале легко воспринимается.
Здесь онлайн-копия
Офлайн
marvellikВ общем, конечно не за чем, можно преобразовать.
зачем два раза читать файл?
Офлайн