open(),read(), write(), close()를 이용한 텍스트 파일 다루기
path = "C:/Users/YUN/Python/pythontxt.txt"
file = open(path, 'w')
strCnt = file.write('Hello World')
print(f'strCnt : {strCnt}')
file.close()
📌결과
strCnt : 11
import time
path = "C:/Users/YUN/Python/current_time.txt"
lt = time.localtime()
file = open(path, 'w')
str = '[' + str(lt.tm_year) + '년 ' + str(lt.tm_mon) + '월 ' + str(lt.tm_mday) + '일]' \
'python study'
file.write(str)
file.close()
📌결과
[2023년 3월 8일]python study
read() 함수를 이용한 파일 문자열 읽기
import time
path = "C:/Users/YUN/Python/current_time.txt"
file = open(path, 'w') # 'w' 덮어쓰기, 'r' 읽기, 'a' 이어쓰기
dateStr = time.strftime('[ %y-%m-%d %p %I(%H):%M ]')
file.write(dateStr)
file = open(path, 'r') # 'w' 덮어쓰기, 'r' 읽기, 'a' 이어쓰기
str = file.read()
print(str)
file.close()
📌결과
[ 23-03-08 PM 07(19):07 ]
path = "C:/Users/YUN/Python/test.txt"
file = open(path, 'w')
file.write('Python은 1991년 네덜란드계 소프트웨어 엔지니어인 \
귀도 반 로섬이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이며 \
인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다.\
Python이라는 이름은 귀도가 좋아하는 코미디인〈Monty Python\'s Flying Circus〉에서 따온 것이다')
file.close()
file = open(path, 'r')
str = file.read()
print(str)
str = str.replace('Python', '파이썬', 2)
print(str)
file.close()
file = open(path, 'w')
file.write(str)
file.close()
📌결과
Python은 1991년 네덜란드계 소프트웨어 엔지니어인 귀도 반 로섬이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다.Python이라는 이름은 귀도가 좋아하는 코미디인〈Monty Python's Flying Circus〉에서 따온 것이다
파이썬은 1991년 네덜란드계 소프트웨어 엔지니어인 귀도 반 로섬이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다.파이썬이라는 이름은 귀도가 좋아하는 코미디인〈Monty Python's Flying Circus〉에서 따온 것이다
파일 모드는 어떤 목적으로 open 할지 결정한다.
- 'w' : 쓰기 전용- 파일이 존재하면 내용 덮어씌움
- 'a' : 쓰기 전용 - 파일이 존재하면 내용 덧붙임
- 'x' : 쓰기 전용 - 파일이 존재하면 에러 발생
- 'r' : 읽기 전용 - 파일이 전재하지 않으면 에러 발생
path = "C:/Users/YUN/Python"
# 'w' 모드
file = open(path + '/hello.txt', 'w')
file.write('Hello World')
file.close()
# 'a' 모드
file = open(path + '/hello.txt', 'a')
file.write('\n I love Python')
file.close()
# 'x' 모드 FileExistsError
# file = open(path + '/hello.txt', 'x')
# file.write('\n I love Python')
# file.close()
#
# 'r' 모드
file = open(path + '/hello.txt', 'r')
str = file.read()
print(str)
📌결과
Hello World
I love Python
def writePrimeNumber():
path = "C:/Users/YUN/Python"
file = open(path + '/prime.txt', 'a')
number = int(input('input numbers : '))
for i in range(2, number + 1):
flag = True
for j in range(2, i):
if i % j == 0 and i != j:
flag = False
if flag:
file.write(str(i))
file.write(str('\n'))
file.close()
def readFile():
path = "C:/Users/YUN/Python"
file = open(path + '/prime.txt', 'r')
print('Primes Number\n' + file.read())
file.close()
writePrimeNumber()
readFile()
📌결과
input numbers : 50
Primes Number
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
path = "C:/Users/YUN/Python"
file = open(path + 'asWith.txt', 'a')
file.write('python study')
file.close()
file = open(path + 'asWith.txt', 'r')
str = file.read()
print(str)
file.close()
with open(path + 'asWith.txt', 'a') as f:
f.write('\nUse As ~ With')
with open(path + 'asWith.txt', 'r') as f:
print(f.read())
📌결과
python studypython study
python studypython study
Use As ~ With
def lottoNumber(nums):
for idx, num in enumerate(nums):
with open(path + '/Lotto.txt', 'a') as f:
if idx < len(nums) - 2:
f.write(str(num) + ', ')
elif idx == len(nums) - 2:
f.write(str(num) + '\n')
else:
f.write('bonus : ' + str(num))
with open(path + '/Lotto.txt', 'r') as f:
print(f.read())
nums = random.sample(range(1, 46), 7)
lottoNumber(nums)
📌결과
41, 44, 23, 25, 37, 22
bonus : 18
writelines()는 리스트 또는 튜플 데이터를 파일에 쓰기 위한 함수이다
languages = ['c/c++', 'java', 'python', 'kotlin', 'c#']
for item in languages:
with open(path + 'languages.txt', 'a') as f:
f.write(item)
f.write('\n')
--------------------------------------------------------------
languages = ['c/c++', 'java', 'python', 'kotlin', 'c#']
with open(path + 'languages_line.txt', 'a') as f:
f.writelines(item + '\n' for item in languages)
print(languages, file=f) #리스트로 출력
📌결과
c/c++
java
python
kotlin
c#
['c/c++', 'java', 'python', 'kotlin', 'c#']
파일의 모든 데이터를 읽어서 리스트 형태로 반환
with open(path + 'languages.txt', 'r') as f:
lanList = f.readlines()
print(f'lanList : {lanList}')
print(f'lanList Type : {type(lanList)}')
📌결과
lanList : ['c/c++\n', 'java\n', 'python\n', 'kotlin\n', 'c#\n']
lanList Type : <class 'list'>
with open(path + 'languages.txt', 'r') as f:
line = f.readline()
while line != '':
print(f'line : {line}', end='')
line = f.readline()
📌결과
line : c/c++
line : java
line : python
line : kotlin
line : c#
scoreDic = {}
with open(path + 'scores.txt', 'r') as file:
line = file.readline()
while line != '':
num = line.find(':')
item = line[:num]
try:
key = int(line[num:])
except:
key = int(line[num + 1:])
scoreDic.update({item: key})
line = file.readline()
print(scoreDic)
📌결과
{'kor': 90, 'eng': 70, 'math': 95, 'science': 80}
scoreDic = {}
with open(path + 'scores.txt', 'r') as file:
line = file.readline()
while line != '':
scoreList = line.split(':')
item = scoreList[0]
key = int(scoreList[1].strip('\n'))
scoreDic[item] = key
line = file.readline()
print(scoreDic)
📌결과
{'kor': 90, 'eng': 70, 'math': 95, 'science': 80}