2014-05-19 6 views
-1

저는 파이썬에서 아주 새로운 것으로, 텍스트 파일의 목록을 변경하려고합니다. 필자는 Oracle에서 목록을 가져와 정보를 목록에 추가하여 스크립트에 붙여 넣을 수 있습니다. 1. 텍스트 파일을 엽니 다. 2. 텍스트 파일의 각 줄에 다른 텍스트를 연결하십시오. 3. 새 변경된 줄을 포함하도록 텍스트 파일을 다시 작성하십시오 (또는 새로 만드십시오)파이썬을 사용하여 텍스트 파일의 목록을 변경하십시오.

예 : 내 목록은 다음 줄이있는 경우 :

GRANT SELECT ON GEODATA. + line + TO GEO_VIEWER; 

그래서 궁극적 t과 같습니다

-NorthAmerica 
    -SouthAmerica 
    -Asia 

내가 그와 연결이 텍스트와 목록을 다시 할을 그의 :

GRANT SELECT ON GEODATA.NorthAmerica TO GEO_VIEWER; 
GRANT SELECT ON GEODATA.SouthAmierica TO GEO_VIEWER; 
GRANT SELECT ON GEODATA.Asia to GEO_VIEWER; 

어떤 도움을 주시면 감사하겠습니다. 고맙습니다!

+0

아직까지는 ... 꽤 많이 봤지만 할 일이없는 것처럼 보이지 않습니다. 아주 간단합니다. 텍스트 파일을 여는 방법조차 잘 모르겠습니다. 각 줄을 반복하는 for 루프를 수행 할 수있는 방법 .... – Strider

+0

@Strider https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files – jonrsharpe

답변

0

그래서 여기 내가 추천 할 것입니다 무엇 : 다음 파일로, 사전 문자열로 파일 (1)의 내용을 작성하는 format() 기능을 사용하여 with 구조

  • 를 사용

    1. 열기 두 파일이

    코드 요소는 다음과 같습니다.

    with open("file_to_be_read.txt", 'r') as fread, open("file_to_be_written.txt", 'w') as fwrite: 
        for line in fread: 
         fwrite.write("GRANT SELECT ON GEODATA.{} TO GEO_VIEWER;\n".format(line[1:])) 
    

    format() 기능을 약간 조정하여 원하는 것을 정확하게 얻을 수 있습니다. 지금은 첫 번째 문자를 제외한 전체 라인이 fread입니다. 이에 익숙하기 때문에

    , 여기에 무슨 일이 일어나고 있는지 좀 더 깊이있는 설명입니다 : 파일로 작업 할 때 폐쇄와 몇 가지 다른 일을 처리하기 때문에

    with 구조는 매우 유용합니다. 즉, with을 사용하면 파일을 닫지 않으므로 오류가 발생하지 않을 가능성이 훨씬 적습니다. 그래서,

    with open("file.txt") as f: 
        #Do stuff 
    

    f = open("file.txt") 
    #Do stuff 
    f.close() 
    

    코드가 적은 오류가 발생하기 쉬운 만들기뿐만 아니라, 그것은 또한 가독성을 향상하는 것과 동일합니다.

    format() 함수는 파이썬에서 문자열로 작업 할 때 매우 유용하고 (다소 수수한) 도구입니다. 짧은 버전은 format()이 적용된 문자열 내의 {}이 함수의 인수로 채워지는 것입니다. 그래서

    print "Hello, my name is {}".format("Dave") 
    

    이 과정의 바보 같은 예이지만, 기능에 상당한 유연성이있다, 지금

    "Hello, my name is Dave" 
    

    를 생성합니다. 형식 지정 구문에 대해서도 전체적으로 mini-language이 있습니다!당신은 테이블을 위해 이것을 사용할 수 있고 멋진 결과물을 만들거나 모든 종류의 것들을 만들 수 있습니다.

  • 0

    당신이 지금까지해온 코드를 포함시켜야합니다. 아직하지 않았으므로 전체 코드는 제공하지 않지만 직접해야 할 도구와 기술을 제공 할 것입니다.

    좋습니다. 문제가 있습니다. 1. 텍스트 파일을 여는 중입니다. 이렇게하면 읽기, 쓰기, 추가, readwrite와 같은 파일을 열 수있는 여러 가지 방법이 있습니다. 전체 목록을 보려면 here을 참조하십시오. 우리 일을 위해서 우리는 파일을 읽고 쓰는 것이 필요합니다. 따라서 우리는 Readwrite 또는 (테이블을 보는 경우) r+을 원합니다. 그래서 먼저 해보 죠.

    with open('your_file_name.txt','r+') as file: 
    

    우리는 파일을 열었습니다. 이제 뭐?

    다음으로 파일을 읽어야합니다. Pyhton의 위대한 개발자 덕분에 놀랍도록 간단하게 명명 된 함수 인 .read()을 사용합니다. 그래서 우리는 파일을 열어 변수 file에 저장했습니다. 읽어 보자.

    countries = file.readlines() 
    

    하지만 잠깐, 당신이 물어 듣고, 당신은 read 말했다 당신은 readlines을 사용했습니다. 이는 read을 사용하면 간단한 문자열을 얻을 수 있지만 readlines은 루프를 통과 할 수있는 목록을 반환하기 때문입니다. 이제 파일에 다시 써야 할 문자열 목록이 있습니다. 그럼, 그렇게 하죠. 당신이 다른 방법으로 파일을 열 함께 놀러 할 수 있지만 놀랍게도 다시 우리는 단순히라는 이름의 기능은 write.

    for country in countries: #Loop through all the countries we just read 
         file.write('GRANT SELECT ON GEODATA. ' + country + ' TO GEO_VIEWER') 
    

    이 그것을해야한다라고했다. 예를 들어 with open('yourfile.txt','r')을 실행하고 읽을 국가가있는 파일을 열어 하나의 파일을 엽니 다. 그런 다음 with open('newfile.txt','w')을 사용하여 새 파일을 만든 다음이 파일에 기록하십시오! 놀아요! 희망은 내가 도왔다!

    관련 문제