본문 바로가기

Python File Read : UnicodeDecodeError: 'utf-8' codec can't decode byte ... 파이썬에서 파일을 읽어서 출력해보면 깨지거나, UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb1 in position 0: invalid start byte 같은 에러가 발생할 때가 있죠. 파일이 utf-8로 안되어 있는 경우에는 아래와 같이 file을 open할 때 encoding 값을 같이 전달해주면 해결 가능합니다. with open('../file/path...', 'r', encoding='utf-8') as f: 여기서 encoding 값을 utf-8로 변경해도 한글 안나오는 경우에는 해당 파일이 euc-kr로 인코딩 되어 있을 수 있습니다. 주로 행정기관에서 생성하는 문서들이나 파일들이 euc-kr로 되어 있는 경우가 있죠. 그럴 때는 eu.. 더보기
파이썬 크롤링 004 - 파싱 결과 저장 / 데이터수집 자동화 정말 기본적인 크롤링 구현을 보여드리고 있습니다. 앞선 포스팅 3개에서 이어지는 포스팅이고요. 파이썬을 활용한 크롤링에 대해서 궁금하신 분들은 001부터 봐주시면 더 이해가 쉽습니다. 아래 링크로 달아둘게요. 2020/04/19 - 파이썬 크롤링 001 - 구성요소, 구현방법 2020/04/26 - 파이썬 크롤링 002 - 크롤러 구현 2020/05/03 - 파이썬 크롤링 003 - 파서 구현 003에서 작성한 코드를 일부 수정했습니다. 일단 전체는 이렇게 생겼고요. 추가된 부분만 설명해볼게요. import requests from bs4 import BeautifulSoup crawling_target_urls = [ 'https://finance.naver.com/item/main.nhn?code=0.. 더보기
django 'load staticfiles' and 'load static' django에서 {% load staticfiles %} 와 {% load static %} 둘 중에 어떤 것을 사용하는게 맞을까요? 공식 문서에서는 {% load static %} 을 추천하고 있습니다. https://docs.djangoproject.com/en/2.2/ref/templates/builtins/#static pytest로 돌려보시면 {% load staticfiles %} >>>> {% load static %} 으로 변경하라는 warning이 계속 나와요. 이런 것들을 보았을 때 앞으로는 load static을 사용하는게 맞는 것 같습니다. 아마도 load staticfiles가 삭제될 예정이겠죠. 저도 load static으로 모두 변경했어요. 테스트 과정에서 나오는 warning.. 더보기
django collectstatic django manage.py 에서 제공되는 기능 중에 하나로 collectstatic이 있습니다. collectstatic은 settings.py에서 정의한 STATICFILES_DIRS에 있는 static 파일들을 STATIC_ROOT에 지정한 폴더로 모아주는 기능입니다. STATIC_ROOT = os.path.join(BASE_DIR, 'static')STATIC_URL = '/static/'STATICFILES_DIRS = ( os.path.join(DEVELOPMENT_DIR, 'dependency/dist'), os.path.join(BASE_DIR, 'TTT/TEST/statics'),) python manage.py collectstatic 하면 프로젝트 BASE_DIR의 static 이라.. 더보기
파이썬 basic - 파일 읽을 때 newline (/n) 제거하기 (remove newline) 파이썬으로 파일을 읽어들일 때 각 줄의 맨 끝에 있는 newline(/n)을 제거하는 방법에 대해서생각나는 것만 정리해봅니다 :) 실험에 사용된 textfile은 아래와 같아요. 일단 읽어들여서 출력하는 소스는 아래와 같이 작성할 수 있습니다. with open("./test.txt", "r") as f : for i in f.readlines(): print i 작동시켜보면 아래와 같이 출력됩니다.이유는 파일 각 라인의 맨 끝에 newline이 들어가 있기 때문입니다 :)이걸 삭제하는 방법은 여러 가지가 있습니다. 구글에 쳐보면 참 많이 나와있구요. 여기서는 그냥 기록용으로 2개만.. 첫 번째 방법은 각 라인에서 -1까지 자르는 것입니다. 아래 line 5를 보면 i[:-1]를 통해 각 라인의 첫 번째.. 더보기
WinSCP -- AWS EC2 Access AWS EC2에서 인스턴스를 생성하면 다운받을 수 있는 pem 키는 인스턴스에 접근할 때 필요하죠 :) 리눅스에서 ssh로 접근할 때는 -i 옵션에 pem 키를 인자로 활용하면 됩니다. 이번 포스팅에서는 윈도우에서 WinSCP를 사용해서 AWS EC2에 파일을 올리는 방법에 대해 간단하게 정리해보려고 합니다. 준비물 : WinSCP 설치한 컴퓨터, EC2에서 다운 받은 pem 키 1. winscp를 실행합니다. 아래와 같은 화면에서 노란색으로 표시한 고급을 선택합니다. 2. 고급을 선택하면 아래와 같은 화면이 나옵니다. 여기서 SSH - 인증 탭을 선택하면 됩니다. 노란색으로 표시한 버튼을 눌러서 pem 파일을 추가합니다. 3. pem 파일을 추가하면 PuTTYgen을 실행한다고 하는데요. 그러라고 합니.. 더보기
리눅스, 맥 - grep 활용 파일안에서 문자열 찾기 예전에 "리눅스 파일 검색 (find), 파일 내부 문자열 검색(grep 이용)" 이라는 포스팅에서 Grep을 통해여러 파일안에서 특정 문자열이 있는지 찾는 내용을 간단하게 정리한 바 있습니다. :) 여기서는 특정 문자열이 포함된 한 줄이 매우 긴 경우 어떻게 하는지 작성해두려고 합니다. 1. 특정 문자열이 포함된 내용을 찾는 것은 아래와 같습니다. 예로 "Multi" 라는 문자열이 포함된 파일을 찾기 위해서는 아래와 같은 명령어를 사용할 수 있습니다. grep -r "Multi" ./* 2. 그런데 Multi 라는 문자열이 엄청나게 긴 문자열에 포함되어 있다면 아래와 같이 나올 수 있습니다. 이것도 좀 많이 줄여서 표현한 것입니다. 즉 Multi라는 문자열을 가진 파일을 찾고 싶은건데요. 결과는 찾을 .. 더보기
atom: 특정 확장자 숨기기 (*.pyc 숨기기) atom에서 모든 확장자가 나타나서 불편하다면 아래 방법으로 특정 확장자 또는 파일을 숨길 수 있습니다. 1. Setting >> Packages >> Tree View 로 이동합니다. 아래로 내리다 보면 Hide Ignored Names를 체크합니다. 2. Settings >> Settings 로 이동합니다. 여기는 Core Settings 인데요. 아래로 쭉 내리다보면 Ignored Names가 존재합니다. 3. 기본적으로는 아래 그림과 같이 되어 있습니다. :) 4. 아래 그림과 같이 *.pyc를 추가해주세요. 혹은 숨기고 싶은 파일을 추가해주세요. atom은 가벼워서 사용하고 있는데 사용하면 할 수록 마음에 들어요.여러 추가 패키지를 사용해서 더 최적화할 수 있을 것 같아요. 혹시 좋은 패키지 알.. 더보기
맥에서 안드로이드 기기 파일 복사 이번에 맥북 프로가 새롭게 나오길 매우 많이 기대했는데 .. 맥에서 안드로이드 기기에 저장된 파일들을 접근해서 복사하거나 삭제하는 것은따로 프로그램을 하나 설치해야 합니다. 그것은 Android File Transfer 입니다. 아래 주소에서 다운 받을 수 있구요. https://www.android.com/filetransfer 위 프로그램을 설치하신 다음에!!안드로이드 기기에서 충전용 말고 파일 USB용 방식을 선택해줍니다. 설치하신 프로그램을 실행하면 다음과 같은 화면을 보실 수 있어요. 오랜만에 사진들을 백업했네요 :) 더보기
Django Static 정리해두기, 실습해보기 이번에도 나중에 다시 쓰려고 정리해두려고 합니다. 1. Django 1.8.2 기준입니다. 2. Django static 설정은 settings.py에 작성합니다. 참고 웹 페이지) https://docs.djangoproject.com/en/1.8/ref/settings/ # STATIC_ROOT는 python manage collectstatic 명령어를 통해서 수집되는 static 파일들이 위치하는 곳입니다. # 값으로 경로를 작성해주시면 됩니다. STATIC_ROOT = "/path/..." # STATIC_URL은 static 파일에 접근하기 위한 url을 작성하는 곳입니다. # 값으로 url을 작성하면 됩니다. 공식 문서에 나와있는 예시 값은 "/static/" 입니다. STATIC_URL =.. 더보기
ubuntu file brower - nemo extension nemo가 머라고 몇 개로 포스팅을 나눠서 쓰네요. 너무 길면 보기 불편해서 그래염 :-) 아무튼 몇 개로 나눈 포스팅은 아래와 같습니다. 1. 예전에 썼던 nemo로 변경했어요 포스팅 : http://ngee.tistory.com/545 2. nemo 단축키가 이런게 있었네요 포스팅 : http://ngee.tistory.com/703 3. nemo를 새로운 버전으로 업그레이드하세요 포스팅 : http://ngee.tistory.com/704 4. 그리고 마지막 nemo extension 몇 개 써보기 포스팅 : http://ngee.tistory.com/705 4번. 마지막 입니다. 일단 nemo라는 키워드로 apt-cache 검색해보면 아래와 같은 화면을 볼 수 있습니다. 파란색: 앞선 포스팅에서 .. 더보기
ubuntu file brower - nemo update nemo가 머라고 몇 개로 포스팅을 나눠서 쓰네요. 너무 길면 보기 불편해서 그래염 :-) 아무튼 몇 개로 나눈 포스팅은 아래와 같습니다. 1. 예전에 썼던 nemo로 변경했어요 포스팅 : http://ngee.tistory.com/545 2. nemo 단축키가 이런게 있었네요 포스팅 : http://ngee.tistory.com/703 3. nemo를 새로운 버전으로 업그레이드하세요 포스팅 : http://ngee.tistory.com/704 4. 그리고 마지막 nemo extension 몇 개 써보기 포스팅 : http://ngee.tistory.com/705 우분투(ubuntu) 14.04 데스크톱 버전에서 기본적으로 사용하는 파일 브라우저는 nemo가 아닙니다. 제가 예전에 작성한 포스팅에서는 n.. 더보기
ubuntu file brower - nemo nemo가 머라고 몇 개로 포스팅을 나눠서 쓰네요. 너무 길면 보기 불편해서 그래염 :-) 아무튼 몇 개로 나눈 포스팅은 아래와 같습니다. 1. 예전에 썼던 nemo로 변경했어요 포스팅 : http://ngee.tistory.com/545 2. nemo 단축키가 이런게 있었네요 포스팅 : http://ngee.tistory.com/703 3. nemo를 새로운 버전으로 업그레이드하세요 포스팅 : http://ngee.tistory.com/704 4. 그리고 마지막 nemo extension 몇 개 써보기 포스팅 : http://ngee.tistory.com/705 파일 브라우저 중에서 nemo라는 녀석을 사용하고 있습니다. Ubuntu 14.04 Desktop 기반에서 기본적으로 제공하고 있는 nauti.. 더보기
Celery Logging *관련 포스팅 내용 Celery + RabbitMQ + Django 참조사이트 : http://ngee.tistory.com/540 Celery + RabbitMQ + Django 연계 1 : http://ngee.tistory.com/542 Celery + RabbitMQ + Django 연계 2 : http://ngee.tistory.com/548 Celery + RabbitMQ + Django 연계 3 : http://ngee.tistory.com/549 Celery Args : http://ngee.tistory.com/550 Celery Worker : http://ngee.tistory.com/563Celery Worker2 : http://ngee.tistory.com/564Celery Lo.. 더보기
리눅스 파일 수정 시간 바꾸기 : Touch 활용 리눅스에서 파일의 최종 수정 시간을 쉽게 변경할 수 있습니다. Touch라는 명령어를 통해서 가능하고 사용 방법은 다음과 같습니다. 일단 아래와 같이 1월 15일 04시 09분에 최종 수정된 a2.tif 라는 파일이 존재한다고 가정하고 -rw-r--r-- 1 root root 12896037 Jan 15 04:09 a2.tif touch 명령어를 통해서 2015년 1월 2일 03시 04분에 최종 수정된 것으로 변경하고자 하면 다음과 같이 -t 옵션을 사용하시면 됩니다. touch -t "201501020304" a2.tif 변경이 잘 이루어졌는지 확인해보면 아래와 같습니다. -rw-r--r-- 1 root root 12896037 Jan 2 03:04 a2.tif 더보기
bash shell script - delete last line in file bash shell을 써서 서버 환경을 자동으로 설정할 수 있도록 하는 스크립트를 작성하고 있어요 ^^ 이거 잼있네요! 문법을 다 볼 시간이 없어서, 필요한 것들만 찾아서 만들고 있는데요. 약간은 어설프지만, 잼있네요!! (근데 왜 눈이 촉촉할ㄲ...) 자주 까먹으니깐, 간단하게 정리해둡니다. sed를 이용해서 파일의 마지막 줄을 삭제하는 것은 엄청 간단하네요. fileName="/etc/bash.bashrc" sed -i '$d' $fileName -i 는 insert 옵션이라고 하구요. d는 delete 군요. 더보기