http://harookie.springnote.com/pages/759316 참고





위 예제를 가지고 간단한 테스트 코드 작성.
한글 나오는 법은 추후 분석해야 할듯.

  File "parser.py", line 33, in <module>
    u = unicode(s, 'euc-kr').encode('utf-8')
UnicodeDecodeError: 'euc_kr' codec can't decode bytes in position 49-50: illegal multibyte sequence

이런 에러가 난다.

신고

'프로그래밍 언어 > <Python>' 카테고리의 다른 글

py2exe with PMW  (0) 2010.12.28
py2exe  (0) 2010.12.28
[python]XML 처리  (0) 2010.10.12
[파이썬] CSV2SQL ver 0.1  (0) 2010.08.27
[python] Windows에서 커맨드창 하나 더 띄우기  (0) 2010.08.24
[wxPython 예제] 2. layout  (0) 2010.08.18
Posted by 소혼
완전하진 않지만 csv 포맷을 sql 포맷으로 활용하기 위해 변환하는 데 유용한 스크립트입니다.
SQL 형태로 만들어주지는 않습니다. 어떤 컬럼이 들어가는지 알 수 없기 때문입니다.
허접하지만 불펌은 정중히 사양하겠습니다.

csv가 만약 단순히 , 로 이루어져 있다면 이렇게 복잡하게 할 필요가 없으나 컬럼에 ,가 내용으로 들어가 있는 경우 "" 로 문자열들이 묶여 있게 됩니다. 따라서 단순히 ,로 split 할 수 없어서 이런 스크립트를 만들었습니다.

허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.


신고

'프로그래밍 언어 > <Python>' 카테고리의 다른 글

py2exe  (0) 2010.12.28
[python]XML 처리  (0) 2010.10.12
[파이썬] CSV2SQL ver 0.1  (0) 2010.08.27
[python] Windows에서 커맨드창 하나 더 띄우기  (0) 2010.08.24
[wxPython 예제] 2. layout  (0) 2010.08.18
[TkInter 예제]2. Frame과 Layout  (2) 2010.08.18
Posted by 소혼
os.system("cmd.exe")를 하면 될 것 같았는데 되지 않았다.

이는 커맨드창에서 cmd.exe를 실행했을 때도 새 커맨드 창이 뜨지 않는 것과 같은 이유이다.

무척 쉬운 방법이 있음을 발견했다.

os.system("start")
당연히 커맨드창에서 start를 입력해도 동일하게 동작한다.

리눅스에서 터미널을 하나 더 띄울때는 그냥
gnome-terminal (gnome을 쓴다면)
konsole (KDE를 쓴다면)
xterm (간단한 터미널)

중 하나를 입맛따라 골라 쓰면 된다.


허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.

신고

'프로그래밍 언어 > <Python>' 카테고리의 다른 글

[python]XML 처리  (0) 2010.10.12
[파이썬] CSV2SQL ver 0.1  (0) 2010.08.27
[python] Windows에서 커맨드창 하나 더 띄우기  (0) 2010.08.24
[wxPython 예제] 2. layout  (0) 2010.08.18
[TkInter 예제]2. Frame과 Layout  (2) 2010.08.18
[TkInter 예제]1. Hello World  (0) 2010.08.18
Posted by 소혼
TkInter와 비교하면서 하려니 노력이 두배나 드는 것 같네요.

어쨌거나 TkInter보다 wxPython은 layout 이 훨씬 더 훌륭하다는 생각이 듭니다.
당장 layout을 위해 absolute positioning과 다양한 sizer를 제공하고 있습니다.
http://www.zetcode.com/wxpython/layout/



비슷하게 만들려다가 졸려서 그냥 사이트 코드를 거의 가져오다시피 했습니다.
absolute layout의 예로 pos와 size를 줘서 원하는 위치 원하는 크기에 배치하는 것이 가능합니다.

TkInter와 유사한 코드는 내일 올려야겠네요.

허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.
신고
Posted by 소혼
Tk는 레이아웃이 좀 귀찮은 것 같다. 그나마 grid라도 있어 얼마나 다행인지...

Frame은 여러 widget을 packing하는데 사용할 수 있는데 packing하는 방법이 너무 단조롭다는 단점을 갖고 있다.
이러한 문제는 grid를 이용해 다소 보완할 수 있다.
grid는 가상의 테이블이 있다고 생각하고 row, column 값을 넣어주면 된다.
가장 큰 row숫자와 column이 이 가상의 테이블의 열과 행의 크기를 지정하는 것 같다.
조심해야 할 점은 0,0부터 시작한다는 점

쓰는 법은 아무 위젯이나 .grid(row=?, column=?)이다.
단점은 너무 많은 위젯을 다 이런식으로 레이아웃을 잡으려면 테이블이 엄청 복잡해질 거라는 점인데. Frame을 적절히 섞어서 레이아웃을 잡아주면 될 것 같다.

허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.
신고
Posted by 소혼
TkInter와 관련된 글들은 대체로 아래 주소에서 참고하여 작성할 듯 합니다.
http://infohost.nmt.edu/tcc/help/pubs/tkinter/index.html

먼저, python의 내장 GUI 라이브러리은 TkInter를 이용한 가장 간단한 예제

대충 인터넷 돌아봐도 TkInter로 HellowWorld 만드는 몇가지 방법이 있는 것 같지만, 이게 그나마 단순한 편에 속하는 것 같다.
App이라고 하는 class를 하나 만들고 __init__을 해주는데 이 때 Tk() 객체를 넘겨받을 수 있게 만들었다.
이 객체로부터 frame을 만들고 frame을 먼저 pack을 통해 root에 밀어넣는다.
Label은 frame의 자식으로 생성하는데 옵션으로 text만을 주었고 역시 pack을 통해 frame에 밀어넣었다.


허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.
신고

'프로그래밍 언어 > <Python>' 카테고리의 다른 글

[wxPython 예제] 2. layout  (0) 2010.08.18
[TkInter 예제]2. Frame과 Layout  (2) 2010.08.18
[TkInter 예제]1. Hello World  (0) 2010.08.18
[wxPython]1. 첫번째 예제  (0) 2010.08.17
[wxPython] 0. 설치하기  (0) 2010.08.17
파이썬 Tk의 option_readfile('optionDB')  (0) 2010.07.06
Posted by 소혼
참고: http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/wxpython_%C7%C1%B7%CE%B1%D7%B7%A1
%B9%D6

wxPython 예제 1 (리눅스)

조인C의 예제를 그대로 가져왔습니다.

아직 내용은 이해가 안가지만 하나씩 간단한 예제를 만들어보기에 앞서 구글링을 통해 얻은 예제입니다.
wxWidget을 공부하려다 말았는데 Windows API가 많이 생각나는 군요 ;;

앞으로 wxPython과 관련된 내용들은 http://www.zetcode.com/wxpython/ 을 많이 참고할 것 같습니다.

허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.
신고
Posted by 소혼
wxPython은 python을 위한 GUI 라이브러리중 하나이다.

기본으로 tk를 지원하고 있지만 솔직히 성에 안차서 파이썬으로는 GUI 를 다루지 않으려고 하지만 어쩌다 보니 이번 기회에 조금 더 공부해보기로 했다.

<window에서 설치하기>
먼저 wxPython을 쓰려면 python의 버전도 체크할 필요가 있다. 아직 3.2를 공식적으로 지원하지 않고 있는 듯 하다.
python이 3.2라면 2.7로 변경할 것을 권한다.

이후, wxPython을 아래 URL에서 다운로드한다.
http://www.wxpython.org/download.php#binaries

나는 Python 2.7을 위한 win32-unicode 버전을 다운로드 했다.
다운로드 : http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.11.0-py27.exe
exe 파일이니 적당히 설치해주면 된다.

<linux 우분투에서 설치하기>
우분투에서 설치하고자 할 때, 가장 쉽게 데비안 패키지를 쓰는게 젤 편하다.
apt-get install python-wxgtk2.8

잘 모르겠지만 우분투에서는 2.6과 2.8 버전 을 지원하나보다 ;;

설치가 잘 되었다면 파이썬을 실행하여(windows에서는 IDLE나 Command line을 실행하여) wxPython을 import 해본다.
>> from wxPython.wx import *

아무 에러가 없다면 wxPython이 잘 설치된 것이다.

허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.
신고
Posted by 소혼

이미 여러 언어를 알고 있는 입장에서 기초부터 다 정리하긴 버겁고 꼭 필요한 것만 추려서 정리해보고자 합니다.

파이썬은 옛날부터 필요할 때마다 조금씩 썼는데 이번엔 안드로이드 앱을 만들면서 파일을 합쳐야 하는 문제와 안드로이드가 리소스 파일명에 제약을 두고 있어서 파일명을 변경해야 하는 문제를 위해 사용했습니다.
어쨌든 이 글은 아주 기초적인 파이썬 사용법을 C 언어 또는 다른 언어를 이미 어느정도 알고 계신 분들을 위한 요약 글입니다.

1. input, print, string
  - 이름을 입력받고 출력하기

name = input("what's your name?")
print("your name is " + name)
print("YOUR NAME IS " + name.upper())
print(your name is " + name.lower())
print(your name is " + name.title())
print("len is " + len(name))

  - 줄바꿈 없이 print : , 가 중요
print "Hello",
print "World"

2. 특수한 문자열
print ( """ 이제부터 줄 바꿈도 모두 출력됨


""")

""" 주석문장 """ 은 여러줄 주석으로 활용할 수도 있습니다.
기본 주석은 #입니다.
문자열 관련 참고 URL : http://creaplz.tistory.com/26

3. 정수 입력
value = int("7")

4. 치환 (마지막 인자는 생략 가능)
print( "abc abc abc abc".replace("abc","def", 3))

5. 랜덤
import random
die1 = random.randint(1,6)
die2 = random.ranrange(6) + 1

6. if문(블록 없이 임의의 white space , tab 대신 동일하게 유지할 것
if value == "7":
  print("seven")
elif value == 7:
  print("seven?")
else:
  print("else")

7 while
whlie value < 10:
  value++
  if value == 9:
    break

8. for (range의 마지막 인자 생략 가능)
for i in range(1,6,2)
  print("i:" + i)

9. index는 C처럼 0부터 시작하지만 -로도 간다. -1은 마지막 아이템이다. 따라서 -len(name)은 첫번째 아이템

10. 튜플 (중간을 수정하기 어려운 배열과 유사)
inventory = ("weapone", "shotgun", "sword")
inventory[0] = "error"
something = inventory[0:1]
something += inventory[2:3]
print(something)

11. list (링크드 리스트 같음 수정도 가능)
list1 = ["weapone", "shotgun", "sword"]
list1[0] = "advanced weapone"
del list1[2]

12. 리스트 튜플들은 중첩도 가능
scores = [("first", 90), ("second", 80)]
item, point = scores[0]

13. 딕셔너리(해쉬맵 같음)
test = {"item1": "dict", "item2":"sohon", 8:"kurl"}
if "item1" in test:
  print(test["item1"])
  print(test.get("item3"))
test["new"]="dictionary"

14. 함수
def log(option, item = 8):
  if option == "A" or option == "B":
    print(" A or B")
  elif option == "C" and item ==8:
    print("C and 8")

log(item = 7, option = "C")

def plus(a, b):
  return a + b

15. global은 변수를 global을 사용할 것임을 명시 아니면 지역변수가 됨

16. 파일 처리
txtfile = open("file", "r")
print(txtfile.read(1))
print(txtfile.readline())
print(txtfile.readline(5))
txtfile.close()

17. 명령행 인자 확인.
파이썬 파일명이 첫번째로 시작하는 리스트입니다. python aaa.py라고 입력하면 aaa.py가 첫번째 엘리먼트
import sys
print sys.argv

18. 외부 명령 실행.
python에서 외부 명령을 실행하는 방법은 여러가지가 있습니다.
os.system("ls")

만약 실행 결과를 내부에서 쓰고 싶다면 
import commands
txt = commands.getoutput("uname -a")
print txt
 
 

 
 

19. 종료
_은 왜 있는지 모르겠네요;;
os._exit(99)

허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.


신고
Posted by 소혼

예섬이를 위해 간단히 짜본 파이썬 스크립트.
문제는 엠파스에서 탭이 제대로 안붙는구나 ;;
[요구사항]
특정 폴더를 선택하여, 해당 폴더가 가지고 있는 파일들의 이름 앞에 특정 문자열을 붙일 수 있어야 한다.
import os, time, string
from Tkinter import *
from tkFileDialog import askdirectory

top = Tk()
F = Frame(top)
F.pack(expand="true")

myPath = askdirectory(title="select directory", mustexist=1)
if not myPath:
	os.exit
else:
	print "selected", myPath

#myPath = raw_input("Enter the path you want to change filename : ");
suffix = raw_input("Input suffix you want : ");
for f in os.listdir(myPath):
	tempPath = os.path.join(myPath, f)
	tempPath2 = os.path.join(myPath, suffix + f)
	if not os.path.isdir(tempPath):
		os.rename(tempPath, tempPath2)

raw_input("finished")
신고

'프로그래밍 언어 > C/C++' 카테고리의 다른 글

gcc 업그레이드 (4.5.0)  (0) 2010.07.21
Header안에 static 변수  (0) 2010.02.21
디버깅하는 법 - 툴 - ltrace  (0) 2010.02.18
unresolved symbol 에 관하여  (0) 2010.01.27
[Python]파일명 바꾸기  (0) 2009.09.02
AspectC++  (0) 2009.08.31
Posted by 소혼
TAG Python
이전버튼 1 이전버튼

티스토리 툴바