정규표현식 테스트 사이트

알아두자 2013. 12. 7. 04:43

http://gskinner.com/RegExr/


예제 - [숫자,문자,등등] 패턴을 빼고 싶을 때


\[(.*?)\]

notepad++ 엄청 쉬운 정규식 패턴

카테고리 없음 2013. 12. 5. 09:40

숫자2개:공백1개의 경우

 

[\d][\d]\s 로 사용 가능함

모듈 불러올 시 차이점

알아두자/python 2013. 11. 21. 23:30

from random import choice

from time import sleep


choice ~

sleep ~


이는 아래와 바꿔 쓸 수 있다.


import random

import time


random.choice ~

time.choice ~

프로그램 실행시간 측정 (second 단위)

알아두자/python 2013. 11. 3. 11:54

#관련 모듈 임포트

import time

#타이머 시작

count_t = time.time()

 

//코드 구현

print 'Running Time : %.02f' % (time.time() - count_t)

chap6 code

학교 실습/네트워크 2013. 10. 25. 16:14

uecho_server


#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <arpa/inet.h>

#include <sys/socket.h>


#define BUF_SIZE 30

void error_handling(char *message);


int main(int argc, char *argv[])

{

int serv_sock;

char message[BUF_SIZE];

int str_len;

socklen_t clnt_adr_sz;

struct sockaddr_in serv_adr, clnt_adr;

if(argc!=2){

printf("Usage : %s <port>\n", argv[0]);

exit(1);

}

serv_sock=socket(PF_INET, SOCK_DGRAM, 0);

if(serv_sock==-1)

error_handling("UDP socket creation error");

memset(&serv_adr, 0, sizeof(serv_adr));

serv_adr.sin_family=AF_INET;

serv_adr.sin_addr.s_addr=htonl(INADDR_ANY);

serv_adr.sin_port=htons(atoi(argv[1]));

if(bind(serv_sock, (struct sockaddr*)&serv_adr, sizeof(serv_adr))==-1)

error_handling("bind() error");


while(1) 

{

clnt_adr_sz=sizeof(clnt_adr);

str_len=recvfrom(serv_sock, message, BUF_SIZE, 0, 

(struct sockaddr*)&clnt_adr, &clnt_adr_sz);

sendto(serv_sock, message, str_len, 0, 

(struct sockaddr*)&clnt_adr, clnt_adr_sz);

}

close(serv_sock);

return 0;

}


void error_handling(char *message)

{

fputs(message, stderr);

fputc('\n', stderr);

exit(1);

}



uecho_client

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>

#define BUF_SIZE 30
void error_handling(char *message);

int main(int argc, char *argv[])
{
int sock;
char message[BUF_SIZE];
int str_len;
socklen_t adr_sz;
struct sockaddr_in serv_adr, from_adr;
if(argc!=3){
printf("Usage : %s <IP> <port>\n", argv[0]);
exit(1);
}
sock=socket(PF_INET, SOCK_DGRAM, 0);   
if(sock==-1)
error_handling("socket() error");
memset(&serv_adr, 0, sizeof(serv_adr));
serv_adr.sin_family=AF_INET;
serv_adr.sin_addr.s_addr=inet_addr(argv[1]);
serv_adr.sin_port=htons(atoi(argv[2]));
while(1)
{
fputs("Insert message(q to quit): ", stdout);
fgets(message, sizeof(message), stdin);     
if(!strcmp(message,"q\n") || !strcmp(message,"Q\n"))
break;
sendto(sock, message, strlen(message), 0, 
(struct sockaddr*)&serv_adr, sizeof(serv_adr));
adr_sz=sizeof(from_adr);
str_len=recvfrom(sock, message, BUF_SIZE, 0, 
(struct sockaddr*)&from_adr, &adr_sz);

message[str_len]=0;
printf("Message from server: %s", message);
}
close(sock);
return 0;
}

void error_handling(char *message)
{
fputs(message, stderr);
fputc('\n', stderr);
exit(1);
}


'학교 실습 > 네트워크' 카테고리의 다른 글

chap5 echo_client2.c  (0) 2013.10.18
tcp_server/client  (0) 2013.10.04
학교 과제  (0) 2013.09.27

chap5 echo_client2.c

학교 실습/네트워크 2013. 10. 18. 16:16

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <arpa/inet.h>

#include <sys/socket.h>


#define BUF_SIZE 1024

void error_handling(char *message);


int main(int argc, char *argv[])

{

int sock;

char message[BUF_SIZE];

int str_len, recv_len, recv_cnt;

struct sockaddr_in serv_adr;


if(argc!=3) {

printf("Usage : %s <IP> <port>\n", argv[0]);

exit(1);

}

sock=socket(PF_INET, SOCK_STREAM, 0);   

if(sock==-1)

error_handling("socket() error");

memset(&serv_adr, 0, sizeof(serv_adr));

serv_adr.sin_family=AF_INET;

serv_adr.sin_addr.s_addr=inet_addr(argv[1]);

serv_adr.sin_port=htons(atoi(argv[2]));

if(connect(sock, (struct sockaddr*)&serv_adr, sizeof(serv_adr))==-1)

error_handling("connect() error!");

else

puts("Connected...........");

while(1) 

{

fputs("Input message(Q to quit): ", stdout);

fgets(message, BUF_SIZE, stdin);

if(!strcmp(message,"q\n") || !strcmp(message,"Q\n"))

break;


str_len=write(sock, message, strlen(message));

recv_len=0;

while(recv_len<str_len)

{

recv_cnt=read(sock, &message[recv_len], BUF_SIZE-1);

if(recv_cnt==-1)

error_handling("read() error!");

recv_len+=recv_cnt;

}

message[recv_len]=0;

printf("Message from server: %s", message);

}

close(sock);

return 0;

}


void error_handling(char *message)

{

fputs(message, stderr);

fputc('\n', stderr);

exit(1);

}



'학교 실습 > 네트워크' 카테고리의 다른 글

chap6 code  (0) 2013.10.25
tcp_server/client  (0) 2013.10.04
학교 과제  (0) 2013.09.27

[xlrd] 기본 사용법

카테고리 없음 2013. 10. 17. 16:53

이것만 알면 된다! 별거 없다!


#엑셀 파일 읽어오기 위해서

import xlrd

#읽어오는 부분

try:

    wb = xlrd.open_workbook("cnn_131017.xls")

    sh = wb.sheet_by_index(0)

#예외처리

except IOError:

    print("file error, please check text file")

    exit()


#0번째줄 첫번째 내용 가져옴

print sh.cell_value(0,0)

#0번째 줄 두번째 내용 가져옴

print sh.cell_value(0,1)


#아래는 데이터 있을 시에만 출력하도록 판정 공식 한번 if문으로 세워 본것,

if sh.cell_value(0,0)is not None and sh.cell_value(0,1) is not None :

    print ("true")


#마지막줄 알아내는 방법

print ("sh.nrows : " + str(sh.nrows))



삽질하다가 알아보니 별거 아니였다... 역시 파이썬... -,-/


xlwt같은 경우 자료가 많지만 xlrd는 자료가 많이 없어서 직접 중요한 부분만 정리해서 올려둔다...


누군가 필요할 지도 모르는 사람을 위해....

[mysql] 특정 테이블속 필드에 자동증가값 꼬였을시.. 무식하게 처리하는법

알아두자 2013. 10. 16. 14:31

예를들어 hello라는 테이블의 world필드 자동증가를 걸어놨는데,


100,101... 이런식으로 잘 가던놈에게 더미값으로 1000을 던져주면 그 뒤론 1001이 알아서 들어간다


처음에 이걸 모르고 장난으로 던졌다가 실제 테스트중인 DB에 자동증가값이 꼬여서 큰일날 뻔한 적이 있는데


그럴땐 데이터를 미리 백업을 해준 뒤에 "truncate table 테이블명" 쿼리 날려주시고


백업한 데이터 먹여준 뒤에 다시 auto increase 찍어보면 마지막 들어간 값 이후로


 제대로 증감하는것을 알 수 있다.


... 적어놔야지... ㅋㅋ



교훈 : 자나깨나 백업

자동 백업은 코비안

알아두자/Windows 2013. 10. 9. 15:32

http://www.cobiansoft.com/cobianbackup.htm


그거슨 진리


백업 형식은 전체백업(Full), 증분백업(Incremental), 차등백업(Differential), 더미작업(Dummy)


전체백업은 항상 모든 내용을 새로 저장하는 방식이고,

증분백업은 이전 백업과 비교해서 바뀐 부분만 저장하는 방식

차등백업은 이전의 전체백업과 비교하여 다른 부분만 저장

간단한 ppserver.py 배치파일 소스

알아두자/python 2013. 10. 8. 14:34

@echo off

@title Python Parallel Server - 기동된PC아이피주소:포트번호

@color 0c

echo Python Parallel Server Server Start!

cd c:\python27\scripts\

start ppserver.py -p 포트번호 -i 기동된PC아이피주소

echo server running!!!

echo press any key to kill server

pause>nul

taskkill /f /im python.exe

echo bye~

@exit



귀찮아서 배치파일로 뚝딱 작성해 보았다.


사용법은 notepad에서 *.bat나 *.cmd 형식으로 저장하여 사용하면 끗