[파이썬] glob - 디렉토리 내 특정 확장자 파일 모두 출력하기


디렉토리 안에 있는 파일을 다룰 때에는 os와 os.path를 함께 사용해도 되고 glob을 사용해도 됩니다. 특정 확장자의 파일만 가져오기 위해 glob을 사용해보도록 하겠습니다. 경로를 합치기 위해 os.path도 사용했습니다.


import glob

import os.path


myPath = '/내가/원하는/디렉토리/경로'

myExt = '*.jpg' # 찾고 싶은 확장자


for a in glob.glob(os.path.join(myPath, myExt)):

    print(a)


이렇게 하면 myPath 안에 있는 jpg 확장자 파일들이 화면에 출력됩니다.

[파이썬] os와 os.path - 디렉토리 내 파일 전부 출력하기


특정 디렉토리 안에 있는 파일을 배열로 받아와야 할 때가 종종 있습니다. os와 os.path를 함께 사용해도 되고 glob을 사용해도 됩니다. 여기서는 os와 os.path를 사용해보도록 하겠습니다.


import os

import os.path


myPath = '/내가/원하는/디렉토리/경로'

files = list()


for a in os.listdir(myPath):

    fullPath = os.path.join(myPath, a) # 파일일 수도 있고 디렉토리일 수도 있습니다.

    if os.path.isfile(fullPath): # 파일이라면

        files.append(fullPath)


print(files)


이렇게 하면 myPath 안에 있는 파일들이 화면에 출력됩니다.

[파이썬] argparse - 명령행 인자 쉽게 설정하기


파이썬 프로그래밍을 하다 보면 명령행에서 인자를 받아야 할 때가 종종 있습니다. 물론 sys.argv를 사용해도 되지만, argparse 모듈을 사용하면 명령행 인자를 훨씬 쉽게 관리할 수 있습니다. 사용법은 다음과 같습니다.


import argparse


parser = argparse.ArgumentParser(description='명령행 인자를 쉽게 설정합시다.')

parser.add_argument("-f", "--foo", required=True) # foo라는 인자

parser.add_argument("-b", "--bar",   required=True) # bar라는 인자


args = parser.parse_args()

foo = args.foo

bar = args.bar

# 이제부터 foo, bar 변수를 사용하시면 됩니다.


이렇게 프로그램을 만드신 후에는 명령행에서 쉽게 인자를 주실 수 있습니다. 다음과 같이 하시면 됩니다. 두 방법 다 됩니다.


$ python 인자연습.py -f 안녕 -b 하세요

$ python 인자연습.py --foo 안녕 --bar 하세요


[리눅스] 특정 mime 형식의 파일만 출력하기 (예제: jpeg 파일만 출력)


find ./ -type f -exec file --mime-type {}  \; | awk '{if ($NF != "image/jpeg") print $0 }'


이렇게 하면 jpeg 형식의 파일만 출력됩니다. 다른 형식의 파일을 찾아보고 싶으시면 "image/jpeg" 부분을 바꾸시면 됩니다.

[VI, VIM] 검색 시 대소문자 구분 안 하기


대소문자 구분 없이 검색하려면 검색어 뒤에 \c 옵션을 붙여주면 됩니다. (사실 아무데나 붙여도 됩니다.)

/Hello\c

라고 하면 Hello, hello, HELLO 등이 모두 다 검색됩니다.


[자바] JNI 시그니처 (Signiture)


JNI 작업을 엄청 하다가 갑자기 정리해놓고 싶어서 씁니다.

https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html 에 있는 내용을 번역했습니다.


타입 시그니처


Z : 부울 값

B : 바이트

C : 문자

S : 쇼트 정수

I : 인트 정수

J : 롱 정수

F : 플로트 실수

D : 더블 실수

L : 클래스-전체-경로 ; 클래스

[ : 배열

( 인자들 ) 반환형 : 함수


예를 들어 다음의 자바 함수를 생각해 보겠습니다.


long f (int n, String s, int[] arr); 


이 함수의 시그니처는 다음과 같습니다.


(ILjava/lang/String;[I)J


---

(제가 추가한 내용)

I는 정수 n, Ljava/lang/String;은 문자열 s, [I는 정수 배열 arr이고 J는 반환값 long을 뜻합니다.


[LaTeX] latex에서 한글 사용하기


\usepackage{kotex}


를 추가하시면 LaTeX에서 한글을 사용할 수 있습니다.

[VI, VIM] 짝 맞는 괄호 찾기


%키를 누르면 지금 커서가 위치하는 곳에 있는 괄호와 짝이 맞는 괄호를 찾아줍니다.

[VI, VIM] 마지막으로 사용한 명령 반복하기


. (마침표) 를 누르면 마지막으로 내렸던 명령이 반복됩니다.

[쿠다] CUDA, CUDNN 설치 여부 및 버전 확인

 

 

1. CUDA

 

nvcc --version

--

< 결과 >

nvcc: NVIDIA (R) Cuda compiler driver

Copyright (c) 2005-2016 NVIDIA Corporation

Built on Tue_Jan_10_13:22:03_CST_2017

Cuda compilation tools, release 8.0, V8.0.61

 

 

2. CUDNN

 

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

--

< 결과 >

#define CUDNN_MAJOR      5

#define CUDNN_MINOR      1

#define CUDNN_PATCHLEVEL 10

--

#define CUDNN_VERSION    (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

 

#include "driver_types.h"

 

 

참고한 사이트:

https://stackoverflow.com/questions/9727688/how-to-get-the-cuda-version

https://stackoverflow.com/questions/31326015/how-to-verify-cudnn-installation

+ Recent posts