Ответ 1
Ваши новые строки поступают из функции печати
использование:
import sys
sys.stdout.write ('some stuff')
и ваши разрывы строк исчезнут
Я использую Python script для для поиска и замены определенных строк в текстовых файлах данного каталога. Я использую модуль fileinput
, чтобы упростить операцию поиска и замены, то есть файл читается, текст заменяется и записывается обратно в тот же файл.
Код выглядит следующим образом:
import fileinput
def fixFile(fileName):
# Open file for in-place replace
for line in fileinput.FileInput(fileName, inplace=1):
line = line.replace("findStr", "replaceStr")
print line # Put back line into file
Проблема заключается в том, что записанные файлы имеют:
Как предотвратить добавление этих дополнительных придатков в файлы?
Ваши новые строки поступают из функции печати
использование:
import sys
sys.stdout.write ('some stuff')
и ваши разрывы строк исчезнут
Используйте
print line,
или
file.write(line)
чтобы исправить дополнительные строки новой строки.
По сравнению с [Ctrl] - [M] - это, вероятно, вызвано входными файлами в DOS-кодировке.
Вместо этого:
print line # Put back line into file
используйте это:
print line, # Put back line into file
Измените первую строку в цикле for на:
line = line.rstrip().replace("findStr", "replaceStr")
Для обновления на Python 4.3 вы можете просто использовать:
print(line, end = '')
чтобы избежать ввода новой строки.
Из-за того, что каждый оператор печати итерации заканчивается символом новой строки, вы получаете пустую строку между строками.
Чтобы преодолеть эту проблему, вы можете использовать полосу вместе с печатью.
import fileinput
def fixFile(fileName):
for line in fileinput.FileInput(fileName, inplace=1):
line = line.replace("findStr", "replaceStr")
print line.strip()
Теперь вы можете видеть, что пустые строки чередуются.