Я пытаюсь заменить небольшой фрагмент текста блоком текста. Я надеюсь, что этот блок текста будет заменен, заменив функцию python. Я бы очень хотел использовать sed
, чтобы получить эту работу, но я нахожусь на машине Windows. В любом случае, вот мой сценарий, не знаю, почему блок текста не заменяется.Заменить конкретный текст блоком текста
# Change the current working directory to IDX location
import os
print os.getcwd()
os.chdir(##location of my text files##)
print os.getcwd()
#Read file names
com_line=raw_input("File name please:")
contents=[]
strs = '#DREFIELD IDOL_SOURCE="idol source"\n#DREFIELD IDOL_TAXONOMY="taxonomy data"\n #DREFIELD IDOL_CATEGORY="IDOL_CATEGORY"\n #DREFIELD IDOL_PROMOTION="idol_promotion"\n #DREFIELD IDOL_PROMOTION_TERM="IDOL_PROMOTION_TERM"\n #DREFIELD IDOL_WHATSNEW="IDOL_WHATSNEW"\n #DREFIELD IDOL_SUMMARY="IDOL_SUMMARY"\n #DREFIELD IDOL_URL="IDOL_URL DATA"\n #DREFIELD IDOL_FORMNUMBER="IDOL_FORMNUMBER"\n #DREFIELD IDOL_DESCRIPTION="IDOL_DESCRIPTION DATA"\n#DRESECTION 0\n'
with open(com_line) as f:
contents.append(f.readlines())
f.close
#Writing to file
f2 = open("test.idx", 'w')
for content in contents:
for s in content:
if s == '#DRESECTION 0\n':
s.replace("#DRESECTION 0\n", strs)
f2.write("%s" % s)
f2.close
Я проверил этот код, и он также вводит условное утверждение. Просто интересно, почему нужный текст #DRESECTION 0\n
не заменяется на strs
? Также я ищу, чтобы сделать эту операцию больших текстовых файлов на несколько концертов. Есть ли лучший способ чтения больших текстовых файлов в python?