os 모듈 자주 쓰는거 정리
22 Nov 2016 | python osos
모듈은 script를 짤 때 많이 쓴다.
여태까지 써왔던 것을 정리하자.
함수들
search관련
Function | Description | Example |
---|---|---|
os.path.join(path, file) |
path 와 file 을 연결시켜준다. |
os.path.join('/folder','name') => '/folder/name' |
os.path.splitext(name) |
name 을 이름 , 확장자 로 분리시켜준다. |
os.path.splitext('/folder/name/a.html') => ('/folder/name/a', '.html') |
os.listdir(path) |
path 안의 폴더 , 파일 을 list 로 만들어준다. |
os.listdir('.') => ['.DS_Store', '.git', ..., 'requirements.txt', 'testbed'] |
파일 조작 관련
Function | Description | Example |
---|---|---|
os.path.exists(path) |
path 가 존재하는지 True , False 로 나타낸다. |
os.path.exists('.') => True |
os.makedirs(folder) |
folder 를 만든다. |
os.makedirs(os.path.join('/home', 'testFolder)) |
os.rename(oldFile, newFile) |
rename함수. oldFile 을 newFile 로 이동한다.(폴더 이동에도 쓰인다. |
os.rename('./test.txt', './temp/test.txt') : test.txt를 temp 안으로 이동 |
예제
import sys, os
import subprocess
def listExtFiles(path, extension):
files = []
for name in os.listdir(path):
if os.path.isfile(os.path.join(path, name)):
if name == ".DS_Store":
continue
filename, file_extension = os.path.splitext(name)
if file_extension == extension:
files.append(name)
return files
def moveFiles(path, folder, fileList):
if not os.path.exists(os.path.join(path, folder)):
os.makedirs(os.path.join(path, folder))
fileListWithPath = [os.path.join(path, file) for file in fileList]
fileListWithNewPath = [os.path.join(path, os.path.join(folder, file)) for file in fileList]
for oldFile, newFile in zip(fileListWithPath, fileListWithNewPath):
print oldFile
print newFile
os.rename(oldFile, newFile)
def savePng(fileName, htmlName):
try:
check = subprocess.check_output(["webkit2png", "-F", "-z", "2", "--delay=0.5", "--filename="+fileName, htmlName], stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
string = "command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output)
print string
return 0
script, path = sys.argv
samsonFiles = listExtFiles(path, '.samson')
htmlFiles = listExtFiles(path, '.html')
pngFiles = [file[:-5] for file in htmlFiles]
for pngFile, htmlFile in zip(pngFiles, htmlFiles):
html = os.path.join(path, htmlFile)
png = os.path.join(path, pngFile)
savePng(png, html)
pngFiles = listExtFiles(path, '.png')
moveFiles(path, "html", htmlFiles)
moveFiles(path, "png", pngFiles)
moveFiles(path, "samson", samsonFiles)