반응형
반응형

파일 다루기


파일 목록 얻기
* os.listdir(‘경로’) → 디렉토리 안에 들어 있는 각 파일 목록 반환


파일 종류 알아보기
* os.path.isfile(fpath) → 순수 파일이면 true
* os.path.isdir(fpath) → 디렉토리면 true
* os.path.islink(fpath) → 심볼릭링크면 true


파일의 허가권
* os.access(filepath, mode) → 파일의 허가권 알아보기
   / mode에 os.F_OK이면 파일 자체가 존재하는 것을 테스트
   / mode에 os.R_OK이면 읽기 권한이 있는 것을 테스트
   / mode에 os.W_OK이면 쓰기 권한이 있는 것을 테스트
   / mode에 os.X_OK이면 실행 권한이 있는 것(또는 디렉토리인지)을 테스트
* os. access(filepath, mode) → 파일의 허가권 변경하기

 

파일 다루기


파일 조작하기
* os.rename(old_filepath, new_filepath) : 파일 이름 변경하기
* os.rename(old_filepath, folder name/new_filepath) : 파일 이동하기
* shutil.copyfile(src_filepath, dest_filepath) : 파일 복사하기


파일 이름 다루기
* os.path.abspath(상대경로) : 상대 경로를 절대 경로로 변환하기
* os.path.exists(filename) : 주어진 경로의 파일이 존재하는지 확인
* os.curdir : 현재 디렉토리, os.pardir : 부모 디렉토리를 가리키는 이름 얻기
* os.sep : 디렉토리 분리 문자 얻기


경로명 분리하기
* os.path.basename(f) : f 경로에서 파일명만 추출
* os.path.dirname(f) : f 경로에서 디렉토리 경로 추출
* os.path.split(f) : 경로명과 파일명을 한 번에 분리
* os.path.splitext(f) : f 경로의 확장자 분리

 

표준 출력 방향 전환


디렉토리에 관련된 일반 작업
* os.getcwd() : 현재 작업 디렉토리 알아보기
* os.chdir() : 작업 디렉토리 변경하기
* os.mkdir() : 디렉토리 만들기
* os.rmdir() : 디렉토리에 내용이 없을 시 삭제
* os.removedirs(filepath) : 맨 오른쪽부터 단계별 디렉토리 삭제
* shutil.rmtree() : 하위 디렉토리까지 모두 한 번에 삭제
* shutil.copytree(src_filepath, dest_filepath) : 하위 디렉토리와 파일 등을 지니고 있는
 디렉토리 복사


디렉토리(트리) 탐색하기
* os.walk(filepath) : filepath부터 시작하여 재귀적으로 모든 하위 디렉토리 탐색
 탐색 시 발견하는 모든 파일에 대해 다음 튜플을 리턴 (dirpath, dirnames, filenames)

반응형
반응형


파일 입출력 방법
 파일을 열어서 읽고, 쓰고, 덧붙이는 방법
  * open(filename, mode) 내장 함수로 filename 이름을 지닌 file 객체를 얻고 작업 수행 후
     close()를 호출하여 작업 프로세스 자원 점유 해제
 
파일 처리 모드의 종류 : open 내장 함수의 두 번째 인자 mode 설명(생략하면 r모드 설정)
  mode   간단 설명
‘r’ 읽기 전용(기본 모드)
‘w’ 쓰기 전용
‘a’ 파일 끝에 추가
‘rb’ 이진 파일 읽기 전용
‘wb’ 이진 파일 쓰기 전용
‘ab’ 이진 파일 끝에 추가

 

파일 입출력 방법

os.getcwd( ) → 현재 작업중인 폴더를 알아보는 함수
라인 단위로 파일 읽기
 * 파일 객체의 반복자(iterator) 이용하기
 * readline() : 한 번에 한 줄씩 읽음 / readlines() : 파일 전체를 라인 단위로 끊어 리스트에 저장
 * xreadlines() : 파일 전체 읽기 X, 상황별로 필요한 라인만 읽음

파일 포인터 : 파일 내에서 현재 위치를 가리키고 있음

파일 접근 방법
 * 순차 접근 (기본 방식) : 파일을 앞에서부터 순차적으로 읽고 쓰는 방식
 * 임의 접근 : 파일 내 임의 위치에서 읽고 쓰는 방식
    - seek(n) : 파일의 가장 첫 번째 위치에서 n번째 바이트로 포인터 이동
    - tell() : 파일 내 현재 포인터 위치를 반환


표준 출력 방향 전환

 

sys.stdout : 표준 출력
sys.stderr : 표준 에러 출력 → 파일 객체로 변환하면 모든 표준 출력(print)는 해당 파일로 저장됨
sys.stdin : 표준 입력

표준 출력을 파일로 저장하기
 * 표준 출력 저장해 두기 (ex: stdout = sys.stdout)
 * 파일 객체로 표준 출력 변경 (ex: sys.stdout = f)
 * 표준 출력 원상 복구 ( ex: sys.stdout = stdout)

>> (부등호 2개) : 표준 출력이 아닌 다른 쪽으로 출력

StringIO 모듈의 StringIO 클래스 객체
 * 파일 객체처럼 입출력 가능한 문자열 객체
 * StringIO에 지원되는 메소드는 파일 객체가 지원하는 메소드와 거의 동일
 * getvalue() 메소드 → 현재까지 담아 놓은 전체 내용 반환

 

파일로의 지속 모듈

 

지속성 : 프로그램 내 생성된 각종 객체들을 해당 프로그램 종료 이후에도 존재하게 만들고, 동일하거나 다른 프로그램에서 사용할 수 있도록 하는 기능

 

지속성 기능을 지원하는 모듈
 DBM 관련 모듈 : anydbm, dbm, gdbm, dbhash, dumbdbm
 * anydbm : 시스템에서 사용 가능한 모듈 중 가장 최적의 모듈 반환
       기본적으로 dumbdbm을 반환
       사전 자료형을 사용하는 것과 동일한 방법으로 사용
 * pickle 모듈 : 파이썬 객체를 저장하는 일반화된 지속성 모듈
        파이썬의 기본 객체 뿐만 아니라 사용자 정의의 복잡한 객체도 저장 가능
        기본적으로 텍스트 모드로 저장하지만 이진 모드로도 저장 가능
 * pickle.dump(저장하고자 하는 객체, 저장하는 위치)
 * pickle.load(저장했던 위치) → 저장했던 객체 불러옴

 

 

 

반응형
반응형

사전 활용법

 

사전(dictionary) 객체의 특징
* 집합적 자료형
* 자료의 순서를 정하지 않는 매핑형
* 키(key)를 이용하여 값(value)에 접근
* 아이템 : 키와 값의 매핑 1개
값을 저장할 시 키 이용 → member[‘a’] = 7 에서 a가 member 사전 안에 있다면 키 'a'의 value 값이 7로 변경되고, 없다면 'a':7 이 생성됨
사전 출력 시 해쉬 기법을 사용하여 임의의 순서대로 아이템 출력
아이템 삭제 시 del과 함께 키 값 명시 → del member[‘a’]
키는 변경 불가능한 자료(문자열, 숫자, 튜플)만 가능하고 변경 가능한 자료(리스트, 사전)은 쓰일 수 없음
함수 이름은 사전의 키나 값으로 사용 가능


사전 메소드

 

phone.keys( ) → 리스트 안에 각각의 사전 키들만 반환
phone.values( ) → 리스트 안에 각각의 사전 값들만 반환
phone.items( ) → (키, 값)으로 튜플이 원소가 되어 리스트 반환
key in D: 사전 D안에 key를 키값으로 가진 아이템이 있는지 확인
p = phone → phone 자체가 가지고 있는 참조값을 p에 할당
phone.copy( ) → 기존 phone 을 그대로 복사해서 새로운 객체 생성 --> shallow copy
shallow copy → 복사하려는 리스트 안 원소까지는 복사 X
get( ) → key를 주면서 value를 검색하는 메소드
get(‘gslee’, 5284)와 같이 인수를 하나 더 제공하면 gslee가 없을 경우 5284 리턴
pop.item( ) → 임의의 item을 꺼내는 메소드
phone.update(ph) → phone의 내용을 ph로 추가하여 업데이트
clear 메소드 → 전체 사전 내용을 없앰

 

루프를 이용한 사전 내용 참조

 

for~in 구문을 활용하면 사전의 모든 키값을 순차적으로 참조 가능
  for key in D.keys( ):
사전 자체를 for 루프에 활용 가능
  for key in D.keys( ): = for key in D:
키와 값을 동시에 참조하려면 D.items( ) 활용
사전에 입력된 아이템들은 일정한 순서가 없기 때문에 키 값에 대한 정렬은 sort( ) 함수 이용
 1) 아이템들을 리스트로 뽑기 → items = D.items( )
 2) 해당 리스트를 sort( ) 함수 이용하여 정렬 → items.sort( )
 3) 값 할당하기 → for k,v in items:

 

반응형
반응형

인재를 논할 때 반드시 덕을 기본으로 삼아야 한다.
짐은 사람을 볼 때
반드시 심보를 본 다음 학식을 본다.
심보가 선량하지 않으면
학식과 재능이 무슨 소용이 있겠는가?
재능이 덕을 능가하는 자는
나라를 다스리는 일에 결코 도움이 되지 못한다.
- 청나라 황제 강희제

 

 “재능이 있는 사람은 자신이 최고라는 생각에
성공 가도를 당연시하고, 상황이 좋을 때만 빛을 발한다.
그러나 한번 상황이 나빠지기 시작하면 악화일로를 걷는다.
그리고 최고 브레인의 이미지가 실추된다는 두려움으로 인해
모험을 회피한다.
실패를 부인하고 남 탓으로 돌린다.
그 결과 혁신이 힘들어진다.”
캐럴 드웩 스탠퍼드대 교수의 지적입니다.
(김성회 저, ‘용인술’에서 인용)

 

 

반응형
반응형

나는 길 위의
모든 것과 대화하기 시작했다.
나무 그루터기, 물웅덩이, 낙엽, 그리고
근사한 덩굴식물과도. 그것은 평범한 사람들의
훈련이었다. 어릴 적에 배웠지만 어른이 되어
잊어버리고만. 그런데 신비하게도 사물들이
내게 응답하고 있었다. 나는 무아경으로
빠져들었다. 두려웠지만, 이 게임을
끝까지 계속하고 싶었다.


- 파울로 코엘료의《순례자》중에서 -


* 일생의 몇 사람이나
무아경으로 걷는 경험을 할까요.
일생에 몇 번이나 이 경이로운 경험을 해볼까요.
길의 모든 것과 대화하며 자연과 하나되어
걷다보면 두려움이 변하여 자신감으로,
슬픔이 기쁨으로, 아픈 상처가
치유의 선물로 바뀝니다.  

반응형

'아침편지' 카테고리의 다른 글

아버지의 노을  (0) 2016.08.17
죽어라 현장을 파고드는 사람  (0) 2016.08.12
느끼면 움직여야 한다  (0) 2016.08.10
그때마다 조금씩 가벼워졌다  (0) 2016.08.09
내 마음의 소리  (0) 2016.08.08
반응형

Tadpole DB HUB 개발자 가이드  :  https://github.com/hangum/TadpoleForDBTools

올챙이는 웹 기반 DB 관리 도구입니다. 웹 브라우저에서 올챙이를 통해 다양한 DB로 접속할 수 있고, 권한을 조절 할 수 있습니다. 올챙이의 최종 지향은 DB HUB 입니다.

목차


반응형

+ Recent posts