파이썬 3.4버전부터 내장함수로 pathlib 모듈이 추가되었다. pathlib을 사용하기 전에는 os모듈을 이용했으며 pathlib는 기본적으로 객체로 다루어진다. os모듈과 pathlib모듈의 차이점을 알아보자.
import os
from pathlib import Path
p = Path()
print(p.cwd())
print(os.getcwd())
import os
from pathlib import Path
p = Path('parentdir')
print(p / 'childdir' / 'file')
print(os.path.join('parentdir', 'childdir', 'file')
디렉토리 변경은 os.chdir()를 사용한다.
import os
from pathlib import Path
p = Path('..')
print(p.cwd())
os.chdir(p)
print(p.cwd())
import os
from pathlib import Path
#새로운 디렉터리생성
p = Path.cwd() / 'new_dir'
p.mkdir()
#새로운 디렉터리생성
path = os.getcwd() + "new_dir"
os.mkdir(path)
from pathlib import Path
Path("./dir1/dir2/dir3").mkdir(parents=True, exist_ok=True)
parents
exist_ok
import os
path = "/home/User/Desktop"
basename = os.path.basename(path)
print(basename)
path = "/home/User/Desktop/test.py"
basename = os.path.basename(path)
print(basename)
path = "test.py"
basename = os.path.basename(path)
print(basename)
import os
path = "/home/User/Desktop"
dirname = os.path.dirname(path)
print(dirname)
path = "/home/User/Desktop/test.py"
dirname = os.path.dirname(path)
print(dirname)
path = "test.py"
dirname = os.path.dirname(path)
print(dirname)
import os
# 디렉토리 존재여부
path = "./data"
print(os.path.exists(path))
# 디렉토리 존재여부
path = "./test"
print(os.path.exists(path))
# 파일 존재여부
path = "./main.py"
print(os.path.exists(path))
from pathlib import Path
file_path = './asd.txt'
print(Path(file_path).is_file())
dir_path = './model'
print(Path(dir_path).is_dir()
dir_path = './asd'
print(Path(dir_path).is_dir()
read(n)
: 파일에서 n개의 문자를 읽어온다.
test.txt는 아래와 같이 구성되어 있다.
hi hello
bye python
f = open('test.txt', 'r', encoding='utf-8')
f.read(3)
f.closd()
'hi '
3개의 문자열 공백까지 출력된 모습이다.
readlines()
: 파일의 한줄을 문자열로 읽어온다.
f = open('test.txt', 'r', encoding='utf-8')
f.readline()
f.closd()
'hi hello\n'
readlines()
: 파일의 각각의 줄을 리스트에 담아 반환한다.
f = open('test.txt', 'r', encoding='utf-8')
f.readlines()
f.closd()
['hi hello\n', 'bye python\n']
write(문자열)
: 파일에 작성할 문자열을 요소로 받아 작성한다.
f = open('test2.txt, 'w', encoding='utf-8')
f.write('hi python')
f.close()
test2.txt 폴더가 생성되며 안에 hi python이 기록되어 있다.
이스케이프 문자를 사용하여 줄바꿈, 탭키 등을 사용할 수 있다.
writelines([문자열, 문자열 ..])
: 리스트의 문자열 요소들을 전부 이어 한줄에 작성된다.
f = open('test2.txt', 'w', encoding='utf-8')
f.writelines(['hi',' ','python','!!!'])
f.close()
''.join(list)
이 결과를 write하는 것과 같은 결과를 볼 수 있다.
그렇다면 아래와 같이 사용할 수 있다.
f = open('test2.txt', 'w', encoding='utf-8')
f.writelines('\n'.join(['python','java','javascript']))
f.close()
file.tell()
: 현재 위치를 알려줌 쉽게 커서의 위치라고 생각하면 된다. (시작은 0)
test2.txt
python
java
javascript
f = open('test2.txt', 'r', encoding='utf-8')
f.tell()
f.read(2)
f.tell()
0
2
file.seek(위치)
: 해당 위치로 커서를 옮기는 역할
f = open('test2.txt', 'r', encoding='utf-8')
print(f.tell())
f.read(2)
print(f.tell())
f.seek(0)
print(f.tell())
0
2
0