2017-05-02 2 views
-1

파일을 단어 목록과 위치 목록으로 압축하여 원본 파일을 다시 만들 수있는 프로그램을 만들려고합니다. 또한 압축 파일을 가져 와서 원본 파일의 문장 부호 및 대문자를 포함한 전체 텍스트를 다시 만들 수 있어야합니다. 재생 된 문장에는 쉼표가 없었기 때문에,문장 재 작성, 재 작성 문장에 쉼표가 누락되었습니다.

file = open("task3paragraph.txt", "w") 
file.write ("Two little dicky birds sitting on a wall, one named Peter, one 
named Paul. Fly away Peter, fly away Paul, come back Peter, come back 
Paul.Into the gardens the little birds go, looking for worms that hide down 
low. Peter can’t catch one, neither can Paul, back home Peter, back home 
Paul!") 
file.close() 


file = open("task3paragraph.txt", "r") 
paragraph = file.read() 
para = paragraph.split() 
positions = [para.index(x)+1 for x in para] 
para2 = str(para) 
pos = str(positions) 
file.close() 


file = open("task3lists.txt", "w") 
file.write(para2) 
file.write("\n") 
file.write(pos) 
file.close() 


file = open("task3lists.txt", "r") 
words = file.readlines() 
sentence = words[0].replace(" 
[","").replace("]","").replace("'","").replace(",","") 
file.close() 


file = open("task3recreated", "w") 
file.write(sentence) 
file.close() 

그리고 내가 그것을 실행했을 때 그것은 끝으로 제외하고 완벽하게 작동합니다 :

지금까지 나는이이

두 개의 작은 위태 위태 한 조류에 앉아 베드로라는 이름의 벽 하나가 바울이라고 불렀습니다. 날아가 버리십시오. 피터가 날아가십시오. 폴이 돌아옵니다. 피터가 돌아 왔습니다. 정원에 작은 새들이 낮게 숨어있는 웜을 찾으러갑니다. 피터는 하나도 못 잡을 수 없어 폴 폴 홈 베드로 백 홈 폴!

두 개의 작은 위태 위태 한 새 벽, 피터라는 이름의 한 바울의 이름 하나에 앉아 :

원래 문장이 가진 모든 쉼표를 누락되었습니다. 피터가 날아가고, 바울을 날려 보내고, 베드로에게 돌아와서, 폴로 돌아와라. 작은 새들이 정원에 가서, 숨어있는 웜을 찾으 라. 피터는 아무도 잡을 수 없으며, 바울, 집으로 돌아가는 베드로, 집으로 돌아갈 수 없다.

다시 작성된 문장의 원래 쉼표 수가 같을 때. 어떻게 수정해야합니까? 에 앉아

두, 작은, 위태 위태 한, 새 :

  • 또한, 나는 ("", "")를 .replace를 제거하고 나에게 너무 많은 쉼표를 주었기 때문에 그게 더 악화 벽, 하나, 명명 된, 피터, 하나, 명명 된, 폴, 날아, 멀리, 피터, 날아, 멀리, 폴, 돌아와, 피터, 돌아와, 폴. , 정원, 작은, 새, 가자,보고, 웜, 숨기기, 아래로, 숨기기, 피터, 잡을 수 없다. ,,, Paul, 집에!

+0

글쎄, 당신은'replace (",", "")'을 사용하고 있으므로 쉼표를 찾아 대신 빈 문자열로 대체하십시오. 그걸 제거하면 어떻게됩니까? – roganjosh

+0

@roganjosh 나는 모든 단어 다음에 쉼표를 붙이려고했다. 때로는 두 단어를 쉼표로 바꾼다. –

+0

좋아, 문제는 당신이리스트의 _string 표현식을'para2 = str (para)'에 저장하고 있다는 것이다. 대신 목록에있는 문자열이 있고 목록에서 항목을 구분하는 (시각적 인) 쉼표는 해당 문자열에있는 실제 쉼표가됩니다. 원시 데이터를 저장하는 다른 방법을 생각하거나이 문제 이후 정리하는 방법으로 생각하면별로 도움이되지 않는 몇 가지 방법이 있습니다. 과제에서, 나는 당신이 전체 줄이 아닌 파일에 개별 줄로 데이터를 저장해야한다고 생각하지만, 그것에 대해서는 확실하지 않다. – roganjosh

답변

0

당신은 대체 할 수 :

sentence = words[0].replace("[","").replace("]","").replace("'","").replace(",","") 

로 :

sentence = words[0].replace("[","").replace("]","").replace("',","").replace("'", "") 

대신 빈 문자열 모든 쉼표를 대체하는, 당신은 단지 인용 앞에는 쉼표를 교체해야합니다 표.

+0

정말 고마워요, 이제 작동합니다! –