본문 바로가기

Computer Science74

[Python] 텍스트 파일 행의 길이를 셀 때 줄바꿈 개행문자 길이는 1 def counting(filename): filename = open(filename, 'r') row, col = 0, 0 for line in filename: row += 1 col = len(line) - 1 텍스트 파일을 한줄씩 for문으로 꺼내면서 길이를 셀 때 column의 길이가 한 행의 character의 개수라고 생각하면 개행문자 \n 때문에 1이 더해진 상태기 때문에 1을 빼줘야한다. 2020. 3. 12.
[Python] try~ except~ 문을 이용한 예외 처리 try except문은 예외가 일어날 가능성이 있는 절을 처리할 때 사용한다. try문의 동작 ① 먼저 try 절이 실행 ② try 절에서 예외가 발생하지 않으면 except 절을 건너뛰고 종료 ③ 예외가 발생하면 except 절을 실행 (출처:https://docs.python.org/ko/3/tutorial/errors.html) for i in givenString: try: Text += givenDict[i] except KeyError: raise ValueError('invalid character') 이런 경우에 givenDict라는 딕셔너리에 i가 존재하지 않아서 KeyError가 발생하면 ValueError를 발생시키도록 했다. raise는 프로그래머가 지정한 예외가 발생하도록 한다. .. 2020. 3. 12.
[Python] 텍스트 파일 관련 자주 사용하는 명령어 정리 ① 텍스트 파일을 함수 안에서 호출하기 def callText(filename): thisfile = open(filename, 'r') 호출할 filename을 함수의 인자로 받는다고 하면, 인자의 이름을 사용해서 open()한다. open(이름 or 경로, 모드) 모드에는 읽기 ('r'), 쓰기 ('w')를 자주 사용한다. 읽기는 디폴트 값이고, 쓰기로 열면 원래 있던 내용이 삭제된다는 것에 유의한다. 이렇게 파일을 open()하고 나서 ▶ 읽기 모드로 사용하는 file 객체의 메소드는, thisfile.read(글자 수) 글자 수로 정한 만큼 반환한다. thisfile.readline() 파일을 행 별로 반환한다. thisfile.readlines() 파일의 행을 리스트의 요소로 넣는다. ② 파일 .. 2020. 3. 11.
[Python] 텍스트 파일을 생성할 때 마지막 행에 \n 안쓰기 문제: 기존 파일에 있는 행의 reverse를 새로운 파일에 저장한다. 예시: original.txt abc def new.txt cda fed 문제 원인: 새로운 텍스트 파일을 작성하는데 # 예시 data = 'Hello World!\n' newFile.write(data) # 3번 반복하면 newFile의 내용이 # Hello World! # Hello World! # Hello World! # 이런 식으로 반복문을 돌리니까, 줄바꿈 개행문자 (\n) 으로 인해서 마지막 행이 비어있는 행이 나왔다. 해결: enumerate를 이용해서 마지막 행일 때는 개행문자 안쓰기 original = open("original.txt", "r") # 새로운 파일을 생성한다. newFile = open("new.tx.. 2020. 3. 11.
[Python] 딕셔너리 키와 값을 서로 바꾸기 - 값이 군집자료형 key가 스트링일 때 딕셔너리 키와 값 바꾸는 방법: https://jiwonkoh.tistory.com/12 [Python] 딕셔너리 키와 값을 서로 바꾸기 >>> new_dict = {} >>> for keys, values in content.items(): new_dict[values] = keys jiwonkoh.tistory.com # content = {'0': {'O'}, '1': {'I'}, '2': {'Z', 'R'}} new_dict = {} for key, value in content.items(): for i in value: new_dict[i] = key # new_dict = {'O': '0', 'I': '1', 'Z': '2', 'R': '2'} 단순하게 값 하나하나에 대.. 2020. 3. 8.
[Python] 문자열에서 알파벳만 추출하기 ① filter 함수를 사용해서 알파벳만 남기기 a = 'There are 10 dogs' c = list(filter(str.isalpha, a)) c =''.join(c) print(c) # Therearedogs a = 'There are 10 dogs' c = str(filter(str.isalpha, a)) print(c) # filter 함수는 filter object를 리턴하기 때문에 list()로 감싸줘야 한다. ② List Comprehension 사용하기 a = 'There are 10 dogs' c = [i for i in a if i.isalpha()] c = ''.join(c) print(c) # Therearedogs 2020. 3. 6.
[Python] text file에서 알파벳이 있는 위치 찾기 # 문제 튜플 (파일의 row, 파일의 column, 위치 딕셔너리) 를 출력한다. 위치 딕셔너리는 key가 위치를 나타내는 튜플, value가 character이다. (모든 line당 character수는 동일) def findAlpha(filename): filename = open(filename, 'r') pos, row = {}, 0 for line in filename: for c in line: if c.isalpha(): pos[(row, line.find(c))] = c row += 1 col = len(line) return row, col, pos ① open()을 이용해서 text file을 read 모드로 연다. ② text file을 한 줄씩 읽고, 그 줄을 한 문자씩 읽으면서 .. 2020. 3. 5.
[Python] 클래스 메소드 __str__, __repr__ 의 차이 파이썬에는 클래스가 언어의 연산자에 대해 자기 자신의 동작을 정의할 수 있도록하는 특수한 메소드들이 있다. __str__과 __repr__도 그 중 하나이다. ① __str__ external string representation을 반환한다. 따라서 print와 비슷한 역할을 한다. ② __repr__ internal string representation을 반환한다. 즉, 파이썬에서 해당 객체를 만들 수 있는 문자열이다. → Returns a string representation that makes sense to the Python interpreter. = Correct Python expression. class ThisClass: def __repr__(self): return "functi.. 2020. 3. 4.