반응형
요소 | 기능 | 예제 |
리스트 | 선언/삽입/추가/제거 | array = [] array.insert(int_index,'content') array.append('content') array.remove('content') |
반환/추출/병합/크기 | array.pop() # tail 반환 array.pop(int_index) array.extend(new_array) len(array) |
|
홀/짝 배열 추출 | array=[1, 2, 3, 4, 5, 6] oddlist=array[0::2] array[1, 3, 5] evenlist=array[1::2] array[2, 4, 6] |
|
복사/위치/조인/정렬 | new_array = list(array) index = array.index('data') str = ",".join(array) l.sort() |
|
딕셔너리 | 선언/초기화 | 선언 dic ={} 또는 dic = dict() 초기화 dic.clear() dic = {"Key":'Value',"number":1234,"array":[1,2,3]} |
key-value 추출 | key 추출 dic = {"apple":500, "banana":1000} dic.keys() dict_keys(['apple', 'banana']) 특정 key 추출 dic = {"apple":500, "banana":1000} dic.get("apple") 500 value 추출 dic = {"apple":500, "banana":1000} dic.values() dict_values([500, 1000]) |
|
객체 추출 | dic = {"apple":500, "banana":1000} dic.items() dict_items([('apple', 500), ('banana', 1000)]) |
|
치환 | a1 = {"Green":"Tree","Red":"Rose","Yellow":"Sunflower"} for color,flower in a1.items(): if flower == "Rose": a1[color] = "Tulip" a1{'Green': 'Tree', 'Red': 'Tulip', 'Yellow': 'Sunflower'} |
|
문자열 | URL 파싱 (Split,Replace) |
from urllib.parse import urlsplit surl = urlsplit('http://127.0.0.1/bsd/board/?bid=1&user=jdh5202') SplitResult(Schema='http', netloc='127.0.0.1', path='/bsd/board/', query='bid=1&user=jdh5202) |
from urllib.parse import urlparse, parse_qs, parse_qsl parts = urlparse("http://127.0.0.1/bsd/board/?bid=1&user=jdh5202") parts = parts._replace( query=parts.query.replace('jdh5202','jdh3202') ) pam = parse_qs(parts.query) pam{'bid': ['1'], 'user': ['jdh3202']} |
||
쿠키 파싱 | from http.cookies import SimpleCookie rawdata = 'security=low; PHPSESSID=722b3646e8a928539d479729fbb4dfe7' cookie = SimpleCookie(rawdata) cookies={} for key,Morsel in cookie.items(): cookies[key]=Morsel.value cookies{'security': 'low', 'PHPSESSID': '722b3646e8a928539d479729fbb4dfe7'} |
|
문자열 포매팅 | a1 = 'name : {}, city: {}'.format('BlockDMask','Seoul') a2 = 'song1 : {1}, song2: {0}'.format('Faded','ice cream') a1 - name : BlockDMask, city: Seoul a2 - song1 : ice cream, song2: Faded |
|
s = "jdh5202 tistory blog"
len(s) # 문자열 길이
s.split() # 공백 문자를 기준으로 문자열을 분리하여 list로 저장
s.startswith('blog') # 문자열의 blog로 시작하는가? True:False
s.endswith('blog') # 문자열의 blog로 끝나는가? True:False
s.find('tistory') # 첫 번째로 tistory가 나오는 인덱스
s.rfind('blog') # 마지막으로 blog가 나오는 인덱스
s.count('t') # 문자열 t가 몇 번 나오는가?
s.isalnum() # 문자열이 글자와 숫자로만 이뤄져있는가? True:False
s.strip('.') # 문자열 양끝의 .를 삭제한다.
s.capitalize() # 첫 단어를 대문자로 만든다.
s.title() # 모든 단어의 첫 글자를 대문자로 만든다.
s.upper() # 문자열을 모두 대문자로 만든다.
s.lower() # 문자열을 모두 소문자로 만든다.
s.swapcase() # 문자열의 대문자는 소문자로, 소문자는 대문자로
s.replace('blog', 'bloger') # 문자열의 blog를 bloger로 변경한다.
|
||
정규식 | import re DATA = "Hey, you - what are you doing here!?" re.findall(r"[\w']+", DATA) Prints['Hey', 'you', 'what', 'are', 'you', 'doing', 'here'] re.split('\W+', DATA) Prints['Hey', 'you', 'what', 'are', 'you', 'doing', 'here', ''] |
|
모듈 |
requests (GET,POST) |
import requests URL='https://www.daum.net/' params={'param1':'value1','param2':'value2'} cookies = {'session_id' : 'cookie-value'} res=requests.get(URL,params=params,cookies=cookies) res.status_code # http 상태 코드 res.text # 불러온 html 정보 res.url #요청한 url 정보 res.cookies # 받아온 쿠키 정보 # image request im = Image.open(requests.get(url, stream=True).raw) im.save( file_name ) |
res=requests.post(URL,data=data,cookies=cookies) res=requests.post(URL,data=json.dumps(data),cookies=cookies) # str type |
||
web browser | import webbrowser webbrowser.open(url) # 새 창 webbrowser.open_new_tab(url) # 새 탭 |
|
math | import math math.ceil(12.2) # 13 올림 math.floor(12.6) # 12 내림 math.trunc(12.6) # 12 버림 |
|
random | post_term=random.randrange(15,30) # 숫자 중복방지 num = list(range(1,5000)) for i in range(100):list.append( num.pop(num.index(random.choice(num)) |
|
subprocess | # 외부 파이썬 실행 import subprocess # check_output은 실행한 결과를 저장, run은 실행만 process = subprocess.check_output(python_path + " " + arg1 + " " + arg2, shell=False, encoding='utf-8') |
|
입출력 |
파일 I/O | path = "C:\\Users\\jdh52\\OneDrive\\" fname = "abcd.txt" f = open(path+fname, 'w') f.write("abcde") f.close() data = open(path+fname).read() data["abcde"] |
CSV | import csv # read csv tmp_path = os.getcwd() + '\\' + 'write_tmp.csv' if os.path.isfile(tmp_path): f = open(tmp_path,'rt', encoding='utf-8') rdr = csv.reader(f) lines = list(rdr) f.close() # 읽은 내용 저장 self.token_str.setText(lines[0][1]) self.blog_name.setText(lines[1][1]) self.delete_postfile.setChecked( ( lines[2][1]=='True') ) # write csv f = open(tmp_path,'w', newline='') # 행 추가하려면 두 번째 인자에 a 입력 wr = csv.writer(f) wr.writerow([1,self.token_str.text()]) wr.writerow([2,self.blog_name.text()]) wr.writerow([3,self.sel_dir_str.text()]) wr.writerow([4,self.delete_postfile.isChecked()]) f.close() |
|
폴더 내 파일 조회 폴더 생성/파일 이동 파일명만 추출 |
# 폴더 내 파일 목록 조회 import os path=os.getcwd() file_list = os.listdir(Path) ## txt 파일 조회 file_list_txt = [file for file in file_list if file.endswith('.txt')] # 폴더 생성/파일 이동 ## 폴더 없으면 생성 if (not os.path.exists(dir_path)): os.makedirs(dir_path) ## 파일 이동 shutil.move(file_path, dir_path) # 파일 명만 추출 file_path = path + '/' + '파일입니다.txt' post_title = os.path.splitext( os.path.basename( file_path ) )[0] ## 파일입니다 |
|
파일 인코딩 변경 | # 파일 인코딩 변경(euc-kr -> utf8) for x in file_list_txt: input_name = working_path + '/' + x try: input = open(input_name, "r", encoding="euc-kr") chunk = input.read() output = open(input_name, "w", encoding="utf-8") output.write(chunk) except: pass |
|
json 파일 생성 | file_data["attributes"] = [ #{ 'test': "abcd" , 'value' : str(random.randint(1,50)) } ] file_data["description"] = "desc" with open( json_path, 'w', encoding="utf-8") as make_file: json.dump(file_data, make_file, ensure_ascii=False, indent="\t") |
|
쓰레드 |
QTimer | self.timer = QTimer(self) self.timer.start(2000) # 2초에 한 번씩 write_exec 함수 호출, lambda를 이용해 함수 인자를 넘김 self.timer.timeout.connect(lambda:self.write_exec(arg1,arg2)) # QTimer 정지 self.timer.stop() |
반응형
'프로그래밍' 카테고리의 다른 글
한국어 문장 생성 AI - KoGPT2 (0) | 2021.06.19 |
---|---|
이클립스 디버깅 (0) | 2021.01.10 |
Pyqt 문법 정리 (0) | 2020.11.10 |
Pyqt 설치 및 동작 (0) | 2020.10.26 |
KoNLPy(코엔엘파이) 설치하기 (0) | 2020.07.22 |