2017-12-26 50 views
0

windows10과 python 2.7.14를 사용하고 있습니다. 명령 프롬프트에서 python 스크립트를 실행합니다. 텍스트 파일의 일부 줄을 읽고 텍스트와 비교해보고 배열과 일치하는지 확인하고 싶습니다. 또한 배열이 글로벌해야합니다. 하지만 내 스크립트에서는 배열에 내용을 저장할 수 없습니다. 어떻게해야합니까?어떻게 파이썬 함수 내부의 배열에 텍스트 파일의 값을 할당하고 전역으로 사용합니까?

#This method is to reading logfile and saving the different datas in different lists 
def Readlogs(Filename): 
     datafile = file(Filename) 
     for line in datafile: 
      if "login = " in line: 
       print(line) 
       trial=line 
       s2 = "= " 
       ArrayLogin = trial[trial.index(s2) + len(s2):] 
       print(ArrayLogin) 
      print(ArrayLogin) 
      if "Overlay = " in line: 
       print(line) 
       trial2=line 
       s2 = "= " 
       arrayOverlay = trial2[trial2.index(s2) + len(s2):] 
       print(arrayOverlay) 
    Readlogs(WriteFileName) 
+0

다음, 아마 당신은 여기 https://stackoverflow.com/questions/423379/using-global-variables-in-a- 통찰력을 얻을 수 있습니다 function-other-than-the-one-made-them –

답변

0

빈 배열을 선언하고 항목을 추가 할 수 있습니다. 이 기능을 외부에서 변수를 선언하고 내부를 사용하려면

#This method is to reading logfile and saving the different datas in different lists 
def Readlogs(Filename): 
     #empty array 
     ArrayLogin, arrayOverlay = [], [] 
     datafile = file(Filename) 
     for line in datafile: 
      if "login = " in line: 
       print(line) 
       trial=line 
       s2 = "= " 
       ArrayLogin.append(trial[trial.index(s2) + len(s2):]) 
       print(ArrayLogin) 
      print(ArrayLogin) 
      if "Overlay = " in line: 
       print(line) 
       trial2=line 
       s2 = "= " 
       arrayOverlay.append(trial2[trial2.index(s2) + len(s2):]) 
       print(arrayOverlay) 

     return ArrayLogin, arrayOverlay 

arr1, arr2, = Readlogs(WriteFileName) 
+0

배열을 함수 밖에서도 사용할 수 있습니까? – Prajna

+0

두 배열을 모두 반환하고 함수 외부에서 사용할 수 있습니다. 위의 코드를 업데이트했습니다. – Rakesh

+0

우리는 이것을 글로벌이라고 선언 할 수 없습니까? – Prajna