WC 프로그램 (파이썬 달성)

A, GitHub의 주소 : https://github.com/asswecanfat/WC

두, PSP 양식 :

PSP2.1 개인 소프트웨어 프로세스의 단계 예상 시간이 소요 (분) 실제 시간이 많이 소요 (분)
계획 계획 (25) (30)
· 견적 • 견적 얼마나 많은 시간이 작업이 필요 (25) (25)
개발 개발 1,400 1,500
· 분석 · 분석 필요  130 (150)
· 디자인 사양 설계 문서를 생성 (60) (50)
· 설계 검토 · 설계 검토  (30) (45)
· 코딩 표준 · 코드 사양 (40) (40)
· 디자인 · 특정 디자인 (80) (90)
· 코딩 · 특정 코딩 (930) 965
· 코드 검토 · 코드 검토 (20) (20)
· 테스트 · 테스트 (자체 테스트, 코드를 수정, 수정 제출) (150) (160)
보고 보고서 130 130
· 시험 보고서 · 시험 보고서 (60) (70)
· 크기 측정 · 컴퓨팅 워크로드 (40) (30)
· 사후 및 프로세스 개선 계획 · 돌이켜 보면, 프로세스 개선 계획을 제안한다 (30) (30)
합계   1,555 1,660

셋째, 문제 해결 아이디어

(1) 조심스럽게 전체 프로젝트 요구 사항을 읽고 난 그냥 적절한 조치가 될 수 있습니다 추출하기 위해 명령 줄 매개 변수를 찾아야합니다.

(2) 첫째, 파이썬의 타사 모듈을 사용 : 클릭, 개발자는, 적절한 명령 줄 매개 변수를 추가하여 구현 기능에 초점을 맞출 필요가 적절한 방법을 쓰기 때문에 그것은, 방법의 수를 명령 줄 개발 도구 패키지입니다, 하지만 단점은 파이썬을 수행 할 수없는 xxx.py -l -w -c xxx.py 비슷한 명령 나는 공식 문서를 참조하지 않았기 때문에 (달성 될 수있다 (즉, 세 가지 기본 명령어를 동시에 두 가지 기본 명령 또는 사용을 사용), 그러나 종류의 예를 찾을 수)

(3) 나는 기본 기능은 모두 첫 번째 방법으로 작성된 사전을 반환 w_func, 나는 비슷한 문자열을 반환 고려 않았다 c_func, l_func 내부 BaseFunc의 쉬운 확장과 유지 보수라는 클래스에 캡슐화합니다 '이 XX XX 파일 문자는'하지만, 다른 방법을 쓸 때 나중에 좋은 계획을 찾을 수 없음. 따라서, 모양과 모듈 사이의 크로스 콜을 고려하여, 캡슐화 과정에서 사전에 발신자의 사전을 반환하기로 결정했다.

(4) 확장 SeniorFunc 클래스 -a 캡슐화, directory_processing 배치 -s 다른 유형의 통화를 용이하게 중첩 -a의 사전 목록을 반환하는 기본 클래스 및 확장 클래스를 이용리스트 저장 방법 -s (즉 -l, -w.-C, -a), 재귀 적으로 문서 처리에있어서의 계속적인 사용을 용이하게하는

(4) 오류 처리의 모듈 부분을 클릭하기 때문에, (가) 경우 - 다른 것은 오류 처리의 작은 부분에 저를 직접 사용하고, 여러 가지 파이썬 자체가 있기 때문에 입력 파일 처리 오류가 오류를 발생시키지 않습니다 후,하지만 False를 반환, 그래서 더 좋을 것입니다 다루는 것이 아니라 쇠퇴 클럽 하우스 유지 보수의 정확한 오류율을 캡처하는 경우 - 다른 사용하여 생각합니다.

(5) 파이썬 파일 오픈 모드는 전용 바이트를 판독 'R'및 'RB', 전자는 일반적으로 개방 기능 부호화 첨가 = "UTF-8"필드로, 호화 . 따라서, 열린 파일을 촉진하기 위해, 나는 전자를 사용하지만, 파일 UTF-8 모드를 읽을하지 않을 경우 직접 오류가 발생하지, 몇 가지 사소한 문제가있을 것이다, 그래서 나는 다음 스키마 파일을 코딩 감지 chardet 모듈을 사용하고, 재 부호화 = 파일의 인코딩 형식은 '적격 파일'순환 모드에 있지 않는다가 나게되고, 오디오 파일 등을 재귀 제거한다.

(6) 와일드 카드를 구현하기 위해, 내가 달성하기 위해 정규식을 사용했다 의해 *. + 대체됩니다에게, 수 있습니까? 대체되었습니다.,이 기능을 실현하고, 포장 공정 wildcard_deal에서 할 수있다.

(7) 그래픽 페이지가 나는 QT 디자이너와 함께 제공하기 때문에, 빠르게 그래픽 페이지와 아름다운을 개발할 수 있지만, pyqt5를 사용하기 시작 나는 파일 대화 상자를 드래그 할 수있는 모듈을 찾을 수 있지만, 자신의 필기를 필요로하지 않았기 때문에 파이썬은 아름다운 Tkinter를을 제공하지만, 각 클래스의 기능을 달성 할 수 호출 할 수 없습니다 사용하므로 코드의이 부분.

넷째, 설계 및 구현 과정

화장실 파일이 BaseFunc 기본 기능 클래스, ExpandFunc 확장 클래스, SeniorFunc 그래픽 페이지 클래스, 주요 실행 방법, wildcard_deal 와일드 카드 처리 방법에서, deal_directory 재귀 처리

 

 

 

 

 다섯째, 테스트 실행

테스트 파일은 다음과 같습니다 : 빈 파일을, 파일은 하나의 캐릭터, 한 단어 문서 표준 파이썬 소스 파일, 하나 개 이상의 디렉토리 중첩 된 파일이

5.1 테스트 비 재귀 함수 (-l, -a, -w, -C)

 

5.1.1 테스트 빈 파일

 

파일의 5.1.2 시험 단 하나 개의 문자

 

 5.1.3 한 단어 파일을 테스트

 

5.1.4 시험 표준 파이썬 소스 파일

 

존재하지 않는 5.1.5 테스트 파일

 

 5.2 테스트 비 재귀 함수 (-s -a / -w / -l / -c)

 5.2.1 시험 중첩 다중 디렉토리 파일

 

 

 

 

 

 

 

 

  5.2.2 시험 와일드 카드 중첩 다중 디렉토리 파일?

 

 

 

 

5.3 그래픽 기능 검사 (-x)

 

 

 모든 처리 결과의 검증 후 예상 결과와 일치

코드 적용 :

 

 인해 커버리지가 감소 될 수 있도록 .coverage 것이다 .coverage 전에 희석 그래픽 인터페이스 테스트 생성

 VI 프로젝트 요약

이 프로젝트는 다양한 모듈 사이의 관계를 계획하는 방법, 구조하는 방법에 대해 생각하는 나를 만든, 그래서 나는 뒤에 소프트웨어 엔지니어링의 깊은 이해에 갔다. 일반적으로이 코드의 중복 내 기대를 저 너무 높은 것이 아니라 부합하지 않은, 아주 좋은하지 않습니다, 전체가 좋은 프로젝트 연습 손이다, 나를 보자 또한 깊은 코딩 표준 모드 PEP8 파이썬의 이해, 이에 내가 더 배울 수있는 프로젝트의 뒤에 바랍니다.

 

 

 

추천

출처www.cnblogs.com/asswecanfat/p/11575481.html