반응형

안녕하세요 HiCreate입니다!!


이번 포스팅에서는 저번 포스팅에 이어서


8. 지역적 이름 리스트

9. 명령행 인수 처리

10. 배열 표현하기

11. 디렉토리 파일 목록


에 대해 알려드리겠습니다.


[8. 지역적 이름 리스트]


dir 은 사용가능한 이름은 가져오는 이름을 가져오는 함수입니다.

dir() 로 쓰거나


import sys

dir(sys)로 쓸 수 있는데요,

실행결과가 다릅니다.


dir()은 현재 프로그램에서 사용한 변수들을 포함해 함수 등을 보여줍니다.

dir(sys)는 시스템에서 사용가능한 걸 모두 가져옵니다.


[9. 명령행 인수 처리]


명령행에 쓰인 인수들을 모두 읽는 걸 말하는 건데요,


1
2
import sys
print(sys.argv)
cs

처럼 하면 어디에 저장된 파일인지 나올겁니다.


Ex) ['C:/Users/HiCreate/Desktop/list1.py']



[10. 배열 표현하기]


배열이라는 것은 1차원, 2차원으로 표현할 수 있습니다.


1차원 배열은 우리가 지금껏 해왔던 리스트와 같은 형태입니다.

a=[1,2,3,4,5] 같은 리스트들을 보고 1차원 배열이라 한다는 거죠.


만약에라도, 정보가 순차적으로 생성되지 않을때,

None으로 이루어진 리스트를 만든뒤

참조하는 방법을 쓸 수 있습니다.

1
2
3
4
5
6
7
8
9
10
= [None] * 10
= [1,2,3,4,5,6]
 
i=0
for k in N :
 
    M[k] = k * N[i]
    i+=1
    
print(M)
cs

위 그림처럼 1차원 배열은 가로 한 줄만으로 이루어져 있습니다.

그래서 i값 (정확히는 0부터 시작입니다...)에 따라 위치가 변하겠죠?


그렇다면 2차원 배열은 무엇이냐

이번엔 세로줄도 있는 겁니다.



위의 그림을 보면 사회시간이나 지리시간에 배우는 좌표가 생각나지 않나요?

A1, B2 이런식으로 찾곤 하잖아요

이것도 마찬가지로


배열 이름 [0][1] 형식으로 찾을 수 있습니다.

다른게 있다면 [세로줄][가로줄]이라는 거죠.


1
2
3
4
5
= [ [1,2,3],
      [4,5,6],
      [7,8,9] ] # 2차원 배열 직접 
 
print(L)
cs


이게 직접 2차원 배열을 정의한 것인데요

보아하니 배열 이름 = [ [리스트], [리스트] ] 형식이네요


이번엔 검색을 해보죠.

위에서 설명드린대로

1
print(L[1][0])
cs

처럼 쓸 수 있다는 거죠.


주의할 점이 있는데요

쉽게 생성해보려고

1
= [[0]*4* 3
cs

처럼 쓰면 안됩니다. (출처는 열혈강의 파이썬)

얼핏보기에 제대로 된 것 같지만

L[0][0] = 9

를 해주면 앞부분이 모두 9로 바뀝니다. 즉, 리스트로 생성되었다는거죠.


이럴 땐 다음과 같이 생성합니다.

1
2
3
4
5
6
7
8
= []
for i in range(3):
    L.append([0]*4)
print(L)
 
L[0][0= 9
print(L)
 
cs

이러면 제대로 배열이 만들어진겁니다.

이외에 리스트 내장을 활용하여

1
2
3
4
= [[0]*4 for i in range(3)]
print(L)
L[0][0= 11
print(L)
cs

처럼 나타낼 수 있구요


그럼 모듈로 만들어 볼까요?

파이썬에는 array라는 모듈이 있습니다.


array에는 타입코드가 있는데요

'c' 

 문자

'b'

정수형 (1)

'B' 

정수형 (1) 

'h' 

정수형 (2)

'H' 

정수형 (2)

'i' 

정수형 (2)

'I' 

정수형 (2)

'l' 

정수형 (4)

'L' 

정수형 (4)

'f' 

실수형 (4)

'd'

실수형 (8) 


같은 정수형이나 실수형은 뭐냐구요? 바로 최소 바이트 수 차이입니다.


배열을 만들 때는
array(타입코드,[리스트]) 형식을 씁니다.

물론 append, insert, extend, 인덱싱, 슬라이싱, del 등을 사용할 수 있습니다.


1
2
= array.array('i')
dir(a)
cs

를 이용하면 어떤 속성들을 쓸 수 있는지 볼 수 있습니다.


[11. 디렉토리 파일 목록 얻기]


디렉토리의 파일 목록을 얻으려면 glob 모듈을 사용합니다.

1
2
import glob
glob.glob('*.png')
cs

처럼 사용합니다.

추가적인 정보를 알아내려면

os 모듈을 이용한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import glob
import os
 
flist = glob.glob('*')
for fname in flist:
    if os.path.isfile(fname):
        print(fname, 'is regular')
    elif os.path.isdir(fname):
        print(fname, 'is directory')
    elif os.path.islink(fname):
        print(fname, 'is a symbolic link')
    elif os.path.ismount(fname):
        print(fname, 'is a mount point')
#이외에 시간, 크기를 얻으려면:
print(os.path.getsize('1.py')) # 크기 얻기
 
import time
 
t=os.path.getatime('1.py'# 시간얻기
print(t) #1970.01.01 12:00 에서 흐른 초로 표현
 
print(time.ctime(t)) #문자열 시간으로 변환
cs


리스트로 할 수 있는 것의 대부분을 다 했네요.

다음 포스팅에서는 리턴에 대해 알려드리겠습니다.

감사합니다!!!

반응형

BELATED ARTICLES

more