whence : 포인터( 커서 )이동의 기준점입니다. - 기본값은 0이며 생략할 수 있습니다. - 0(기본값)은 파일의 처음을 의미 합니다. - 1은 현재 파일의 포인터(커서) 위치를 의미 합니다. - 2는 파일의 끝을 의미합니다.
* [ ] 대괄호 안의 whence는 생략할 수 있습니다.
우선 파일을 읽어 객체를 생성합니다.
# test.txt파일을 읽기 모드로 읽어서 foo에 보관합니다.
# test.txt의 내용은 '0123456789 abcdefghi'라고 가정합니다.(20바이트)
foo = open( 'test.txt' , mode='r', encoding='utf-8' )
# 만일 파일의 맨 뒤에서 읽어오려면 파일을 바이너리 모드로 읽어와야 합니다.
# 이때 인코딩은 하지 않습니다.
foo = open( 'test.txt' , mode='rb' )
import re
# 텍스트 모드로 읽을 때
# foo = open( 'test.txt', mode='r', encoding='utf-8' )
# 바이너리 모드로 읽을 때
foo = open( 'test.txt', mode='rb')
bar = foo.read()
print(bar)
# 출력 텍스트 모드: 0123456789 abcdefghi
# 출력 바이너리 모드: b'0123456789 abcdefghi'
# whence는 생략 되었기 때문에 커서는 처음부터 3글자를 이동한 후에 2글자를 읽어 들입니다.
foo.seek(3)
foobar = foo.read(2)
print(foobar)
# 출력 텍스트 모드: 34
# 출력 바이너리 모드: b'34'
# 여기서 다시 읽으면 현재 커서의 위치가 5글자 다음에 위치 하기 때문에 그 다음 부터 읽어 들이게 됩니다.
foobar = foo.read(3)
print(foobar)
# 출력 텍스트 모드: 567
# 출력 바이너리 모드: b'567'
# 커서를 파일 맨뒤에서 5글자 앞(왼쪽)으로 간 후에 2글자를 읽어 옵니다.
# 여기서 주의할 점은 뒤에서 부터 읽어 들이려면, 파일을 가져 올때 바이너리 모드로 가져와야 합니다. mode='rb'
foo.seek(-5, 2)
foobar = foo.read(2)
print(foobar)
# 출력 텍스트 모드: ef
# 출력 바이너리 모드: b'ef'
master를 사용하지 않게 된 이유는 'Black Lives Matter' 운동에 발맞춰 주종(주인과 노예)관계를 뜻하는 'master', 'slave'를 다른 단어로 대체하기 위해서라고 합니다.
2020년 6월 Go 언어가 인종차별적 요소나 주종 관계의 의미를 담고 있는 whitelist/blacklist와 master/slave라는 용어를 프로젝트에서 제거하기로 결정하면서 업계 전반에 이런 부분을 제거하는 움직임이 일어나기 시작했습니다.
이후 master를 기본 브랜치로 사용하던 Git에서도 이 논의가 이루어졌고 브렌치를 사용자가 지정할 수 있도록 변경하였습니다.
이어서 GitHub도 기본 브랜치를 master에서 main으로 변경하기로 했고, 2020년 10월 1일부터 적용되었습니다. 이제 저장소를 생성할 때 초기화 옵션을 선택하면 main 브랜치가 기본 브랜치로 생성됨을 알려줍니다.
Git 2.28부터 사용자가 기존의 master로 지정되어 있던 기본 브랜치를 설정을 통해서 변경할 수 있는 기능이 추가되었습니다. 기본은 master로 동작하지만, 사용자가 원하는 대로 바꿔서 사용할 수 있습니다.
이제 기본 브렌치를 master에서 main으로 바꾸는 방법을 알아 보도록 하겠습니다.
1. Git의 버전부터 2.28이상인지 확인해 보도록 하겠습니다. 그리고 main으로 설정합니다.
설정이 끝나면 새로 생성하는 저장소부터 적용됩니다
$ git version
git version 2.28.0
$ git config --global init.defaultBranch main
2. 설정이 잘 됬는지 config를 확인해 봅니다.
config의 우선 순위는 Local > Global > System순이며 Local 설정 파일이 제일 높습니다.
개발 환경의 설정 config에 따라서 확인하면 됩니다.
git config --system --list # System 설정 파일을 확인
git config --global --list # Global 설정 파일을 확인
git config --local --list # Local 설정 파일을 확인
git config --list # 모든 설정을 확인
3. 만일 이미 master로 프로젝트를 진행 중에 main으로 바꾸고 싶다면 다음 명령을 사용합니다.