Форум сайта python.su
0
есть исходный текстовый файл. С помощью python нужно пересохранить файл, чтобы предложение после знака “.” начиналось с новой строки. Хочется просто наглядно увидеть работу функций по открытию файла в питоне и тд. спасибо заранее
Офлайн
568
Офлайн
0
как пример) есть конечно лучше решения
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))
Отредактировано koward (Янв. 14, 2016 19:33:22)
Офлайн
221
koward
ужас, чем вот это
kowardлучше вот этого
data =
f1.read().replace('.', '\n')
kowardЭто ошибочное поведение - а что если вам передали не относительный путь, а абсолютный? Еррор
path = os.path.join(os.path.dirname(__file__), name_file)
Офлайн
0
JOHN_16JOHN_16 то что в конце каждой строки ставится точка, возможна она и не нужна пользователю, который создал этот топик
kowardужас, чем вот это
JOHN_16Полностью с вами согласен, будет ошибка. Подскажите как нужно было написать, возьму на заметку, я просто недавно начал изучать пайтон, еще не все тонкости знаю.
Это ошибочное поведение - а что если вам передали не относительный путь, а абсолютный? Еррор
Отредактировано koward (Янв. 15, 2016 00:24:46)
Офлайн
221
koward
ок, я не доглядел. Исправлю. Ну вы же поняли что вопрос остался тот же и да, он больше риторический:
f1.read().replace('.', '.\n')kowardда никак, это не проблема конкретно этой функции. Она принимает имя файла name_file и открывает файл с таким именем - а что в этой переменной - только имя файла, абсолютный или вообще сетевой путь не важно. Об этом должен заботиться тот кто вызывает эту функцию.
Подскажите как нужно было написать
Офлайн
857
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')
Офлайн
2
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 (Янв. 15, 2016 10:30:39)
Офлайн
857
PutenДа, забыл я.
Я бы подправил немного:
Офлайн