반응형
반응형

[python] 환경변수 관련.  os, sys

import os
import sys
 


print(" os 환경변수 environ \n")
print(" * 모든 시스템 환경 변수 ") 
print(" os.environ()  : ", os.environ)

print('')
for key, value in os.environ.items():
    print('{}: {}'.format(key, value))


print(" * 특정 시스템 환경 변수 ")    
print(" os.environ('JAVA_HOME')  : ", os.environ['JAVA_HOME'])

# 존재하지 않는 환경 변수를 가져오면, 에러는 발생하지 않고 None이 리턴
result = os.environ.get('NOT_EXISTS')
print(result)

print(" * 현재 코드가 실행되는 디렉토리까지 문자열 ")
print(" os.getcwd() : ", os.getcwd())

print(" * 현재 실행 파이썬 스크립트의 PID 출력 ")
print(" os.getpid() : ",  os.getpid() )


print(" * 현재 워킹 디렉토리 변경  ")
print(" os.chdir() : " )
print(" import os ")
print(" print(os.getcwd()) #/Users/projects/workspace ")
print(" os.chdir( os.getcwd()+'/scripts/src' ) ")
print(" print(os.getcwd()) #/Users/projects/workspace/scripts/src ")

print(" * 디렉토리 만들기 : mkdir(path[,mode]) ")
#_result = os.mkdir("test_dir")
#print(_result)


print(" * path에 존재하는 파일과 디렉토리들의 리스트 반환 ")
_result = os.listdir(".")
print(" os.listdir('.') : ",  _result )
print('')
for x in _result:
    print('{}'.format(x))

# 인자로 전달된 디렉토리를 재귀적 생성
#  - 이미 **디렉토리가 생성**되어 있는 경우나 **권한이 없어 생성할 수 없는 경우**는 **예외**발생
print(" * 디렉토리 만들기 : makedirs(path[,mode]) 이미 **디렉토리가 생성**되어 있는 경우나 **권한이 없어 생성할 수 없는 경우**는 **예외**발생")
#_result = os.makedirs("test_dir")


print(" * 하위 폴더를 for문으로 탐색 : os.walk(path) ", " 기본적으로 top-down임. bottom-up으로 하고 싶다면 ")

if __name__ == "__main__":
    root_dir = "./"
    for (root, dirs, files) in os.walk(root_dir):
        print("root : " + root)
        if len(dirs) > 0:
            for dir_name in dirs:
                print("dir: " + dir_name)

        if len(files) > 0:
            for file_name in files:
                print("file: " + file_name)

os.walk(root_dir, topdown=False)  #bottom-up으로 하고 싶다면,

print(" * 'A'+'/'+'B' 로 문자열을 return 한다. : os.path.join('A','B) ")

print(" os.path.isdir(): directory인가? ")
print(os.getcwd(), " ==> " , os.path.isdir(os.getcwd()) )

print(" os.path.abspath(path): abs 경로 반환  ")
print(" 현재 ./sketchpy_001.py 파일의 절대경로 : ", os.path.abspath("./sketchpy_001.py"))


print(" os.path.dirname(path) : 경로의 제일 뒤 빼고 반환  ")

print(" os.path.exists(path) : 지정한 path에 파일, 디렉토리가 존재하는지 유(True)/무(False) 리턴  ")
print("os.path.isfile(path)  ")
print("os.path.isdir(path)  ")
print("os.path.isabs()  ")
print("")

import glob

print( " glob.glob(os.getcwd()) : ls와 유사한 기능을한다, 정규식 사용 가능 (* ? [0-9])" )
print(" (workspace) $ ls = glob.glob(os.getcwd()+'/*'))  ")
print(" list로 return  ")
print( glob.glob(os.getcwd()))
print( glob.glob(os.getcwd() + "/*"))

print( "" )
print(" glob.iglob(path)  ")
print("    - glob.glob와 다르게 iterator로 반환  ")
print("    - list로 담지 않기 때문에 결과가 매우 많다면 유용함  ")
for i in glob.iglob(os.getcwd()+'/*'):
    print(i)
반응형
반응형

[PYTHON] 파일 인코딩 관련

 

UTF-8

UTF-8-SIG

""" 
    인코딩 정보
"""
import os
import sys 
 
 
#작업하는 경로(위치)가 어디인지 확인
#print(os.getcwd())
prePath_in = "./Project/" 
prePath_out = "./Project/" 



#1. 기본 내용적기

# 기본 텍스트 신규 입력
file = open("test.txt", "w")
file.write("내용입력")
file.close()

# 한글깨짐 방지 ENCODING UTF-8
file = open("test.txt", "w", encoding="UTF-8")
file.write("내용입력")
file.close()

# 한글깨짐 방지2 ENCODING UTF-8
# txt는 UTF-8로도 충분한데 csv는 UTF-8로만 하면 읽을땐 다른걸로 읽을 경우 깨짐 현상 발생
file = open("test.csv", "w", encoding="UTF-8-sig")
file.write("test,test,test\n")
file.write("잘되나,안된다,오된다\n")
file.close()

# 참고
# Permission denied: 'test.csv' 가 나온다
# 파일 열고 있어서 수정할 수 없다는거다. 꺼주자.

# 추가 입력
file = open("test.txt", "a")
file.write("추가 내용입력")
file.close()


# 읽기
file = open("test.txt", "r", encoding="UTF-8")
print(file.read())
file.close()

# with 함수 : open & close 포함 
with open("test.txt", "w", encoding="UTF-8") as file:
    file.write("내용입력")
with open("test.txt", "r", encoding="UTF-8") as file:
    print(file.read())
 

 

#2. print 한거 txt 파일에 넣기

# sys.stdout 함수 사용하여 log 저장하기
f = open('test.txt','w', encoding='utf-8') # 로그 저장할 file open
sys.stdout = f
print("내용입력")
sys.stdout = sys.__stdout__   # 원래의 stdout으로 복구
f.close()                     # 로그 파일 닫기

#이렇게 해도 되긴 하는데.. 프로그램이 종료 안되면 문제가 생길듯?
sys.stdout = open('test.txt','w', encoding='utf-8')
print("내용입력")
반응형
반응형

ChatGPT: Optimizing
Language Models
for Dialogue

https://openai.com/blog/chatgpt/

 

ChatGPT: Optimizing Language Models for Dialogue

We’ve trained a model called ChatGPT which interacts in a conversational way. The dialogue format makes it possible for ChatGPT to answer followup questions, admit its mistakes, challenge incorrect premises, and reject inappropriate requests. ChatGPT is

openai.com

 

반응형
반응형

인생에서 가치 있는 것,
당신이 소망하고 이루고 싶은 것,
당신이 누리고자 하는 것은 모두 오르막이다.
문제는 사람들 대부분의 꿈은 오르막인데,
습관은 내리막이라는 사실이다.
- 존 고든


높은 꿈은 필연적으로 오르막길 일수 밖에 없습니다.
꿈은 오르막인데 쉽고 편한 내리막길만 찾는 것이
어쩌면 우리네 자연법칙이라 할 수 있습니다.
자연법칙을 거슬러 오르막을 올라가야 정상에 도달하게 됩니다.
“계속 실패하는 것은 오르막길을 걷고 있는 까닭이고,
더 이상 실패하지 않는 것은 내리막길에 접어든 때문입니다.”
(조정민 목사, ‘고난이 선물이다’에서)

반응형
반응형

이스라엘의 한 연구에 따르면
12주 동안의 유산소 운동으로 염증지표인
CRP 값이 20퍼센트(당뇨 환자의 경우는 40퍼센트) 정도
낮아졌다. 뿐만 아니라 항염증 요소인 IL-10 단백질까지도
증가되었다. 매우 바람직한 현상이 아닐 수 없다. 운동이
노화 지연에 효과가 있다는 또 한 가지 예는 직접적으로
우리에게 와 닿는다. 운동으로 매주 총 3500칼로리를
소모하면 신체 기능상 약 3~4년이 젊어진다는
사실이 그것이다.


- 유병팔의《125세 건강 장수법》중에서 -


* 운동!
3~4년 정도가 아닙니다.
만년 청년, 만년 청춘이 될 수 있습니다.
나이가 들수록 더욱 건장한 몸이어야 합니다.
얼굴에 생기가 돌고 발걸음에 힘이 넘쳐야 합니다.
그리 어려운 일이 아닙니다. 오늘부터라도
'유산소 운동'을 바로 시작하는 것입니다.
만년 청춘으로 되돌아가는
첫걸음입니다.  

반응형

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

걸음마  (0) 2022.12.22
'그런 걸 왜 하니'  (0) 2022.12.21
호기심 천국  (0) 2022.12.19
불안할 때는 어떻게 하죠?  (0) 2022.12.19
따뜻한 맛!  (0) 2022.12.19
반응형

단기와 장기 두 마리 토끼를 잡자

 

경영자는 맷돌에 코가 닿을 정도로 열심히 일하면서
시선은 나아가는 방향을 향해야 한다.
만약 경영자가 다가올 100일에 대한 관리를 소홀히 하면
다가올 100년도 없을 것이다.
경영자는 무엇을 하든, 긴급함뿐만 아니라
기본적인 장기 목표와 원칙을 추구해야 한다.
장단기 균형을 맞춰야 한다.
- 피터 드러커


리더는 장기적 관점에서 생각하며
단기적 결과를 위해 장기적 가치를 희생하지 말아야 합니다.
단기적인 이익에 집중하면, 장기적인 성장과 발전 잠재력을 훼손할 수 있습니다.
그렇다고 장기적인 관점만을 유지할 경우 당장의 생존에 위협을 받을 수 있습니다.
리더는 항상 단기적인 이익과 장기적인 성장 발전을 균형있게 추구해야 합니다.

반응형

+ Recent posts