#python #string #file #io
#python #строка #файл #io
Вопрос:
У меня есть функция, которая может принимать только строки. (он создает изображение со строкой, но строка имеет небольшое форматирование и не переносит слова, поэтому длинная строка будет просто проходить через край изображения и продолжать уходить в бездну, хотя на самом деле я бы хотел, чтобы она создавала абзац, а не бесконечность в одну строку).
Мне нужно, чтобы это печаталось с разрывами строк. В настоящее время файл читается с использованием
inputFiles.readlines()
так что это считывает весь файл. Сохранение file.readLines() создает список. Таким образом, этот список не может быть передан моей функции, ищущей строку.
Я использовал
inputFileContent = ' n'.join(inputFiles.readLines())
в попытке принудительно выполнить жесткие разрывы строк в строке между каждым элементом списка. Это не работает (редактировать: уточнение здесь), что означает, что строка inputFileContent не имеет разрывов строк, даже если я поместил ‘ n’ между элементами списка. Насколько я понимаю, функция readLines() помещает отдельные строки в отдельные элементы списка.
есть предложения? Спасибо
Комментарии:
1. Что такое
inputfiles
? Что означает «не работает»?2. Пожалуйста, объясните, что вы имеете в виду, когда говорите, что это не работает. Покажите, что он делает и что вы хотите, чтобы он делал.
3. Пожалуйста, предоставьте информацию о функции, которую вы вызываете. Является ли это частью библиотеки? Как это документировано для работы?
4. Я открыл свой входной файл в vi и заметил, что там, где должны быть все разрывы строк, есть ^ M. Как я могу заставить python заметить это тоже, в настоящее время он видит весь файл как одну строку.
Ответ №1:
Используйте inputFiles.read()
который создает строку. Помогает ли это?
Комментарии:
1. Эй, в жизни бывают вещи и похуже.
2. Да, как будто мы оба не пришли на следующую встречу по python, потому что она была забронирована до того, как вы ответили… О, неправильное окно чата…
Ответ №2:
‘Join’ должно было сработать. Ваша проблема может заключаться в том, что при написании строки игнорируются символы новой строки. Возможно, вы могли бы попробовать ‘ r n’.join(…)
Комментарии:
1. добавление r в микс также ничего не дало, я просто попытался использовать «readLine ()», чтобы проверить, выделяет ли это, и, к моему удивлению, python не видит жестких возвратов в моем inputFile
2. У меня получилось, мой файл нужно было прочитать с флагом U. Затем python распознал жесткие возвраты в файле.