파이썬 파일 입출력
조회수 4575회
파일 입출력 이해가 잘안되네요...]\
infilename = input("입력 파일 이름: ") outfilename = input("출력 파일 이름: ")
infile = open(infilename, "r") outfile = open(outfilename, "w")
s = infile.read()
outfile.write(s)
infile.close() outfile.close()
어디 부분이 잘못된건가요 실행하면 오류가 나옵니다
2 답변
-
import os path = os.getcwd(); #현재 경로(디렉토리) 저장 full_path = path + '/test.txt' #현재 경로 + 파일명 ###################### 파일 쓰기 ########################## try: file1 = open(full_path, mode='w') # mode = 'a' : 이어쓰기 // mode = 'w' : 새로쓰기 file1.write("안녕하세요") #파일에 쓰기 file1.close() except Exception as err: print(str(err)) ####################### 파일 읽기 ######################### try: file1 = open(full_path, mode='r') # mode = 'r' : 읽기 text = file1.read() #파일에서 읽어서 text변수에 저장 print(text) file1.close() except Exception as err: print(str(err))
open의 첫번째 파라미터에 파일명만 쓰는게 아니라, 전체경로에 파일명을 합쳐서 써줘야합니다
**수정 kei님의 답변대로 파일명만 적어서 open을 호출하는 경우, 현재실행하는 파이썬코드가 있는 폴더에서 open할 파일이 있는지 먼저 확인하고 있으면 열어줍니다. 따라서 절대경로를 쓰더라도 mode를 r로지정하는 경우 해당파일이 그 경로에 반드시 존재해야합니다. 해당파일이 존재하지 않을경우를 대비해 항상 예외처리(try~except)처리를 해줘야합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
일반적으로 파일입출력 함수는 현재 작업 중인 (스크립트 파일이 열린) 위치를 기본값을 가지고 있습니다. 파일을 열기 위해서는 위의 내용처럼 절대값으로 변환하는 방법과 현재 작업할 파일이 소스코드와 동일한 위치에 있도록 하면 됩니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력