- 파일 닫기 close()를 생락하기 위해 사용
file = open(uri+'hello.txt', 'a')
file.write('230907study')
file.close()
👆요걸, 요렇게👇 쓸 수 있다
with open(uri+'hello.txt', 'a') as f:
f.write('230907study')
🎲 랜덤 숫자 뽑기 (1~50 중에 5개 뽑기)
import random
rNums = random.sample(range(1,51), 5)
print(rNums)
import random
uri = 'C:/pythontxt/'
def lottoNumbers(nums):
for idx, num in enumerate(nums):
with open(uri+'lotto.txt', 'a') as f:
if idx < len(nums) - 2:
f.write(str(num) + ', ')
elif idx == len(nums): #리스트의 맨 끝숫자 뒤에는 콤마 없이
f.write(str(num))
elif idx > len(nums) -1:
f.write('\n')
f.write('bonus: '+ str(num))
rNums = random.sample(range(1,46), 7)
print(rNums)
lottoNumbers(rNums)
languages = ['c/c++', 'java', 'c#', 'python', 'javascript']
uri = 'C:/pythontxt/'
for item in languages:
with open(uri+'languages.txt','a') as f:
f.write(item)
f.write('\n')
👇👇👇
languages = ['c/c++', 'java', 'c#', 'python', 'javascript']
uri = 'C:/pythontxt/'
with open(uri+'languages.txt','a') as f:
f.writelines(item + '\n' for item in languages)
- ( ) 튜플
- [ ] 리스트
- { } 딕셔너리: key 값과 value 값!
uri = 'C:/pythontxt/'
scoreDic = {'kor': 85, 'eng': 90, 'mat': 92, 'sci': 79, 'his': 82}
for key in scoreDic.keys():
with open(uri + 'score.txt', 'a') as f:
f.write(key + '\t:' + str(scoreDic[key]) + '\n')
🙋 혹시 위 내용에서 리스트 모양 그대로 가지고 오고 싶다면?
uri = 'C:/pythontxt/'
scoreDic = {'kor': 85, 'eng': 90, 'mat': 92, 'sci': 79, 'his': 82}
with open(uri + 'score.txt', 'a') as f:
print(scoreDic, file=f)
- readlines(): 전체를 한번에 한줄로
- readline(): 한줄만 한줄에, 전체를 다 보여주고 싶다면 while문 돌리기
uri = 'C:/pythontxt/'
with open(uri+'languages.txt','r') as f:
lanlist = f.readlines()
print(lanlist)
print(type(lanlist))
#결과
#['c/c++\n', 'java\n', 'c#\n', 'python\n', 'javascript\n']
#<class 'list'>
with open(uri+'languages.txt','r') as f:
line = f.readline()
while line != '': #라인이 비어있지 않다면
print(line, end='') #print로 자동개행이 되므로 end=''로 개행을 막음
line = f.readline()
scoreDic = {}
uri = 'C:/pythontxt/'
with open(uri+'score.txt', 'r') as f:
line = f.readline()
while line != '':
tempList = line.split(':') #':' 앞뒤를 잘라줌
scoreDic[tempList[0]] = int(tempList[1].strip('\n')) #헷갈리는 부분
line = f.readline() #이걸 여기 한번 더 써줘야 아랫줄들이 착착 나옴
print(f'scoreDic: {scoreDic}')
scoreDic[tempList[0]] = int(tempList[1].strip('\n'))
tempList[0]은 과목명, templist[1]은 점수\n 을 뜻함
strip으로 뒤에 \n 을 삭제하는 건 잘 알겠으나,
scoreDic[과목명] = int(점수)를 하니까 {'과목명': 점수} 가 나오다니...