Autohotkey 를 사용하여 특정 폴더에 있는 특정 확장자의 파일 수를 세기 위해 함수를 하나 만들어 봤습니다. Autohotkey 에서는 Loop 문을 통해 특정 확장자 파일 모두에 대해 접근을 할 수 있고 루프를 돌 때마다 A_Index 값이 증가 합니다. 이를 사용하면 파일의 갯수를 셀 수 있습니다. 다수의 특정 확장자 입력을 받을 수 있도록 했습니다.

코드는 다음과 같습니다.






위 코드중 제가 만든 함수는 fileCount() 이고 다음과 같이 폴더와 확장자를 지정하면 해당 폴더에 있는 특정 확장자의 갯수가 몇개인지를 알려 주는 함수 입니다. 확장자는 여러개를 순차적으로 넣으면 되고 아래 예에서는 jpg, png 파일을 찾도록 한 것입니다.

directV=C:\testFolder

N_Files := fileCount(directV, "jpg", "png")

그런데 검색을 조금 해 보니 특정폴더에 파일 개수를 찾기 위해서 Windows COM 을 사용하는 방법도 있더군요. Scripting.FileSystemObject, Shell.Application 등을 사용하는 방법이었으며 해당 방법들을 사용해도 동일한 결과를 얻을 수 있습니다. COM 을 사용하는 예에서 Shell.Application 을 사용하여 Item 의 갯수를 찾는 경우 숨김폴더는 제외한 갯수를 알려 주더군요.



프로그래밍시 데이터들로부터 빈도를 측정하는 것은 매우 자주 있는 일 입니다. 이런 경우 프로그래밍언어에 따라서 다르 긴 하지만 hash 또는 dictionary 형태의 변수를 활용하여 데이터에 따른 빈도를 Count 할 수 있습니다.

저는 요즘 증권사 API를 사용해 보고 있고 주로 Python 을 많이 활용하는데 아래 주소에서 Counter() 에 대한 설명이 자세히 나와 있더군요.

https://data-flair.training/blogs/python-counter/

아래 코드와 같이 너무나 간단하게 데이터의 빈도를 세고 빈도 횟수에 따라 정렬하는 등의 작업을 할 수 있습니다. for 문 등을 사용하여 iteration 을 하고 싶은 경우 dict() 를 통해 dictionary 로 만든 후에 사용 할 수 있더군요. 아무튼 굉장히 편리 할 것 같습니다.

from collections import Counter


c=Counter(['a','b','c','a','b','a'])

print(c)

print(c['a'])

print(c.most_common())

for key,val in dict(c).items():

    print(key, val)

위 코드의 실행 결과는 아래와 같습니다.

Counter({'a': 3, 'b': 2, 'c': 1})

3

[('a', 3), ('b', 2), ('c', 1)]

('a', 3)

('b', 2)

('c', 1)



+ Recent posts