Найти - Пользователи
Полная версия: Работа с текстовым файлом
Начало » Python для новичков » Работа с текстовым файлом
1
kot.pushin
есть исходный текстовый файл. С помощью python нужно пересохранить файл, чтобы предложение после знака “.” начиналось с новой строки. Хочется просто наглядно увидеть работу функций по открытию файла в питоне и тд. спасибо заранее
koward
как пример) есть конечно лучше решения
import os
def example(name_file):
	path = os.path.join(os.path.dirname(__file__), name_file)
	with open(path) as f1:
		data = [e + '.' + '\n' for e in f1.read().split('.')]
		with open(path, 'w') as f2:
			f2.write(''.join(data))
JOHN_16
koward
ужас, чем вот это
koward
data =
лучше вот этого
f1.read().replace('.', '\n')
?

koward
path = os.path.join(os.path.dirname(__file__), name_file)
Это ошибочное поведение - а что если вам передали не относительный путь, а абсолютный? Еррор
koward
JOHN_16
kowardужас, чем вот это
JOHN_16 то что в конце каждой строки ставится точка, возможна она и не нужна пользователю, который создал этот топик

JOHN_16
Это ошибочное поведение - а что если вам передали не относительный путь, а абсолютный? Еррор
Полностью с вами согласен, будет ошибка. Подскажите как нужно было написать, возьму на заметку, я просто недавно начал изучать пайтон, еще не все тонкости знаю.
JOHN_16
koward
ок, я не доглядел. Исправлю. Ну вы же поняли что вопрос остался тот же и да, он больше риторический:
f1.read().replace('.', '.\n')

koward
Подскажите как нужно было написать
да никак, это не проблема конкретно этой функции. Она принимает имя файла name_file и открывает файл с таким именем - а что в этой переменной - только имя файла, абсолютный или вообще сетевой путь не важно. Об этом должен заботиться тот кто вызывает эту функцию.
py.user.next
import os
 
with open('file.txt', 'rb') as fin, \
     open('file.out', 'wb') as fout:
    fout.write(fin.read().replace(b'.', b'.\n'))
    os.remove('file.txt')
    os.rename('file.out', 'file.txt')
Puten
py.user.next
Я бы подправил немного:


import os
with open('file.txt', 'rb') as fin, \
     open('file.out', 'wb') as fout:
    fout.write(fin.read().replace(b'.', b'.\n'))
os.remove('file.txt')
os.rename('file.out', 'file.txt')

Иначе вывалится с ошибкой, что файл еще занят.
py.user.next
Puten
Я бы подправил немного:
Да, забыл я.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB