2013-07-24 1 views
-2

내 웹 사이트에서 일부 내용을 수정하기 위해 찾기 및 바꾸기 스크립트를 만들고 있습니다. 파이썬 3.3.2를 사용하고 있습니다.파이썬에서 파일을 쓰기 및 읽기 가능하게하기

import re 

f = open('random.html', 'w') 

strToSearch = " " 

for line in f: 
    strToSearch += line 

patFinder1 = re.compile('<td>Sermon Title</td>\ 
      <td><audio preload="none" controls src="http://www.orlandobiblechurch.org/Audio/\d{6}ldm.mp3"></audio>\ 
      </td>\ 
     </tr>') 

findPat1 = re.search(patFinder1, strToSearch) 

findPat1 = re.findall(patFinder1, strToSearch) 

for i in findPat1: 
    print(i) 

subFound = patFinder1.sub('<td>Lord\'s Day Morning</td>\ 
      <td><audio preload="none" controls src="http://www.orlandobiblechurch.org/Audio/\d{6}ldm.mp3"></audio>\ 
      </td>\ 
     </tr>', strToSearch) 
print(subFound) 

f.write(subFound) 
f.close() 

문제는 파이썬이 파일을 읽을 수 없습니다라고 나에게 이야기한다는 것입니다 :

여기 내 코드입니다. 이 f = open ('random.html', 'w')을 f = open ('random.html', 'r')으로 변경하면 쓰기가 가능하지 않다고합니다. 왜 둘 모두가 필요한지는 이해가되지만, 둘 다 넣으면 정확히 하나의 읽기/쓰기가 있어야한다는 것을 알 수 있습니다. 나는 이것이 기본적인 무엇인가라고 확신한다, 나는 단지 그것을 이해할 수 없다. 제공 할 수있는 도움에 감사드립니다.

+1

"w +"시도해 보셨습니까? http://www.tutorialspoint.com/python/python_files_io.htm – erkmene

답변

0

모드 둘 다에서 열 번째 매개 변수로 r+ 또는 w+를 사용할 수있다. here을 참조하십시오. 또한

, 당신이 with 문을 사용하여 고려가? 그들은 더 파이썬은 다음과 같습니다

with open('random.html', 'w+') as f: 
    do_stuff() 

이 수동으로 이후 .close()을 수행 할 필요가 없습니다 큰 장점이 있습니다.

  • strToSearch은 또한 이와 같은 물건에 대한 BeautifulSoup 같은 HTML 파서를 사용하여 생각 해 봤나 strToSearch = ''.join(f.readlines())

  • 로 다시 쓸 수있다? 정규 표현식보다 더 쉽고 편리합니다.

+0

흠, 아름다운 수프가 흥미 보이지만, 우분투를 설치하는 방법에 대한 모든 문서 회담 : 나는 빠른 검색과 함께이 발견했다. 나는 단순히 setup.py를 클릭한다고 가정한다. – DogLover

+0

@DogLover 예, 가능합니다. 아니면 간단한'pip install bs4' :) – TerryA