1. lex04_phonebookmenu.py
# -*- coding: utf-8 -*-
#phonebook menu :phonebook 리스트 관리 :
#C Create R read(print) U Update D Delete
# 초기화
#1.출력
#2.추가
#3.수정
#4.삭제
#9.프로그램 종료
phone_list= \
[
['leemin', '010-028-9382'],
['shin', '017-821-6521'],
['parkchanho', '010-111-1111'],
['Kim mon', '02-982-1391'],
['itKorea', '010-9903-1129']
]
class Phonebook() :
count =0
def __init__(self, name, phone_number) : #특수메서드: 파이썬이 호출.
self.id= Phonebook.count;
self.name = name;
self.phone_number = phone_number
Phonebook.count+=1
def print(self) :
return '{0:3} {1:10} {2:15} '.format(self.id, self.name, self.phone_number)
#특수한 메서드 :print할때 호출 : print가 호출되었을 때 출력하고자 하는 스트링을 return.
def __str__(self) :
return '{0:3} {1:10} {2:15} '.format(self.id, self.name, self.phone_number)
#초기화 phonebook_list에 기본데이터를 입력
phonebook_list=[]
for phone in phone_list:
#print(phone)
#print(phone[0],phone[1])
# 인스턴스 생성
pb = Phonebook(phone[0], phone[1])
#리스트에 추가
phonebook_list.append(pb)
def print_phonebook() :
for phonebook in phonebook_list :
print(phonebook.print())
def add_phonebook() :
#사용자로부터 이름과 전화번호를 입력받는다
name = input('이름을 입력하세요 ')
phone_number = input('전화번호를 입력하세요 ')
#이름과 전화번호를 이용하여 객체를 만든다.
phonebook = Phonebook(name, phone_number)
#phonebook_list 리스트에 추가한다.
phonebook_list.append(phonebook)
#update는 너무 어려워서 안하기로 함
def update_phonebook() :
pass
def delete_phonebook():
#사용자로부터 id를 입력받는다.
id_num = input("지우고자 하는 폰북아이디번호를 입력하세요 ") # str type
id_num = int(id_num) #str->int 으로 강제형변환
flag = False; #if문에 들어갔을 때 flag를 변경
for phonebook in phonebook_list :
print(phonebook)
if id_num == phonebook.id :
phonebook_list.remove(phonebook)
print('요청하신 번호를 삭제하였습니다')
flag= True
break
if not flag :
print('요청하신 번호는 존재하지 않습니다')
#id와 동일한 id를 갖는 객체를 phonebook_list에서 찾는다.
#리스트에서 삭제한다. remove()를 사용
while True:
print('1:출력 2:추가 3:수정 4:삭제 9: 종료')
#input을 받는다. menu로 받습니다.
menu=int(input('메뉴를 입력하세요 > '))
#input이 9면 break
if menu == 9 :
break
if menu == 1:
print_phonebook()
elif menu == 2:
add_phonebook()
elif menu == 3 :
update_phonebook()
elif menu == 4 :
delete_phonebook()
print('프로그램을 종료합니다')
2. lec01_path.py
# -*- coding: utf-8 -*-
# path란 directory, file 모두를 얘기함.
import os
#__file__ (시스템 글로벌 변수 ) : 현재파일의 절대 경로 얻기 (f5로 실행)
print(__file__)
#__file__에서 절대경로만 가져오기
print(os.path.dirname(__file__))
#상대경로에서 절대경로를 가져오기
print(os.path.abspath('.'))
###### firstfile.txt를 만들기
#1. path만들기
file_path = os.path.join(os.path.dirname(__file__), 'firstfile.txt')
print(file_path)
#2.path를 이용하여 file생성(쓰는 용도로 )
#변수에 파일객체 생성하여 담는다.
#'wt' :mode : write, text
f = open (file_path, 'wt')
print('처음만든 파일입니다.', file=f)
#3.파일을 닫는다.
f.close()
#4. 파일을 연다 (읽는 용도로)
#'rt' :mode : read, text
f=open(file_path, 'rt')
text= f.read()
print(text)
#5. 파일을 닫는다.
f.close()
3. lec02_file.py
# -*- coding: utf-8 -*-
#파일 입출력
#형식 : 변수 = open(파일이름, 모드, 문자저장방식)
#파일이름 :파일 path의 string.
#모드:
#w:write
#r:read
#a:append (파일의 끝에 추가)
#t:text
#b:binary
#문자저장방식 :utf-8이 디폴트
#파일읽기 메서드 : read(), readline(), readlines()
#파일쓰기 메서드 : write(), writelines()
text= '''
누구를 위해 누군가 기도하고 있나 봐
숨죽여 쓴 사랑시가 낮게 들리는 듯해
너에게로 선명히 날아가
늦지 않게 자리에 닿기를
I'll be there 홀로 걷는 너의 뒤에
Singing till the end 그치지 않을 이 노래
아주 잠시만 귀 기울여 봐
유난히 긴 밤을 걷는 널 위해 부를게
또 한 번 너의 세상에 별이 지고 있나 봐
숨죽여 삼킨 눈물이 여기 흐르는 듯해
할 말을 잃어 고요한 마음에
기억처럼 들려오는 목소리
I'll be there 홀로 걷는 너의 뒤에
Singing till the end 그치지 않을 이 노래
아주 커다란 숨을 쉬어…
'''
import os
#print(text)
#base_dir를 설정
base_dir = os.path.dirname(os.path.abspath(__file__))
print(base_dir)
file_path = os.path.join(base_dir, 'data_synopsis.txt')
file_copy_path = os.path.join(base_dir, 'data_synopsis_copy.txt')
##########1
#파일쓰기 :write()
f=open(file_path, 'wt', encoding='utf-8')
f.write(text)
f.close()
#파일읽기 :read()
f= open(file_path, 'rt', encoding='utf-8')
text2 = f.read()
f.close()
#print(text2)
##########2 리스트로 하는 방법
#파일읽기 : readlines()
f=open(file_path, 'rt', encoding='utf-8')
lines = f.readlines()
f.close()
#파일쓰기 :writelines()
f= open(file_copy_path, 'wt', encoding='utf-8')
f.writelines(lines)
f.close()
#lines를 화면에 출력하기
for line in lines :
print(line,end='')
'웹_프론트_백엔드 > 단과' 카테고리의 다른 글
[단과_Python] 2020.02.04 (0) | 2020.02.05 |
---|---|
[단과_JAVA] 2020.02.04 (0) | 2020.02.05 |
[단과_JAVA] 2020.02.03 (0) | 2020.02.04 |
[단과_Python] 2020.01.31 (0) | 2020.02.03 |
[단과_JAVA] 2020.01.31 (0) | 2020.02.03 |