[Linux]부트캠프 - 파일 및 폴더 생성
파일 및 폴더 생성
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
f = open('file1.txt', 'w')
f.close()
# 존재하지 않는 디렉터리에 생성하는 경우 에러 발생
f = open('c:/python/file1.txt', 'w')
# f = open('c:\\python\\file1.txt', 'w')
f.close()
data = 'Hi' # data에 Hi라는 문자열 저장
f = open('file2.txt', 'w') # 쓰기 모드로 file2.txt 생성
f.write(data) # 파일에 data의 내용인 Hi를 작성
f.close() # 파일을 닫아준다.
data = '안녕하세요'
f = open('file2.txt', 'w') # 코딩 형식이 ANSI여서한글이 깨져서 보인다. encoding=UTF-8을 사용하면 한글도 잘 보임.
f.write(data) # 파일에 data의 내용인 안녕하세요를 작성
f.close()
data = '안녕하세요'
f = open('file3.txt', 'w', encoding='utf-8') # 코딩 형식이 utf-8이여서 한글이 잘 보인다.
f.write(data) # 파일에 data의 내용인 안녕하세요를 작성
f.close()
for문을 활용할 수도 있다.
f = open('file4.txt', 'w', encoding='utf-8')
for i in range(1,11):
data = '%d행\n'% i
f.write(data)
f.close()
기본적으로 ‘r’(읽기 모드)를 활용한다.
test.txt 내용:
안녕하세요. 이순신입니다.
지금 열심히 파이썬 공부하는 중이에요.
1. 변수
2. 자료형
3. 연산자
4. 제어문
5. 함수
한 줄만 출력
f = open('test.txt', 'r', encoding='utf-8')
line = f.readline() # 첫번째 라인 1개 읽기
print(line)
f.close()
안녕하세요. 이순신입니다.
한 줄씩 끝까지 읽어오기
f2 = open('test.txt', 'r', encoding='utf-8')
while True:
line = f2.readline() # .readline() 뒤에는 \n가 내재되어있다고 생각하면 된다.
if not line:
break
print(line, end='') # end=''를 사용함으로 한줄의 공백들이 사라진다.
f2.close()
안녕하세요. 이순신입니다.
지금 열심히 파이썬 공부하는 중이에요.
1. 변수
2. 자료형
3. 연산자
4. 제어문
5. 함수
내용 전체의 라인 읽어오기
f = open('test.txt','r',encoding='utf-8')
lines = f.readlines() # realines로 읽은 내용들을 줄로 나눠 리스트의 원소로 저장
print(lines)
f.close()
['안녕하세요. 이순신입니다.\n', '지금 열심히 파이썬 공부하는 중이에요.\n', '1. 변수\n', '2. 자료형\n', '3. 연산자\n', '4. 제어문\n', '5. 함수\n']
반복문(for)을 활용하여 전체 라인 읽어오기
f = open('test.txt', 'r', encoding='utf-8')
lines = f.readlines()
for line in lines:
print(line, end='')
f.close()
안녕하세요. 이순신입니다.
지금 열심히 파이썬 공부하는 중이에요.
1. 변수
2. 자료형
3. 연산자
4. 제어문
5. 함수
f 변수에 파일을 지정해 반복문 활용
f = open('test.txt', 'r', encoding='utf-8')
for line in f: # f.readlines()를 자동 수행
print(line, end='')
f.close()
안녕하세요. 이순신입니다.
지금 열심히 파이썬 공부하는 중이에요.
1. 변수
2. 자료형
3. 연산자
4. 제어문
5. 함수
test2.txt 내용:
01234
abcde
가나다라마
f = open('test2.txt', 'r', encoding='utf-8')
data = f.read()
print(data)
f.close()
print(type(data))
print(len(data))
f.close()
for ch in data:
print(ch) # 전체 파일이 하나의 문자열이 되고 하나의 글자씩 출력
01234
abcde
가나다라마
<class 'str'>
18
0
1
2
3
4
a
b
c
d
e
가
나
다
라
마
offset, whence
) : 파일 내 검색seek(0,0) : 시작위치로부터 0열의 위치 => 0행 0열
seek(10,0) : 시작위치로부터 오른쪽으로 10열의 위치 => 0행 10열
sekk(0,2) : 파일의 끝으로부터 0열의 위치
한글
은 3Byte
로 인식f = open('test2.txt', 'r', encoding='utf-8')
data = f.read()
value = input('검색 값 입력: ')
if value in data:
print('Exist!')
else:
print('Not Exist!')
f.close()
검색 값 입력: ab
Exist!
검색 값 입력: 바
Not Exist!
f = open('test2.txt', 'a', encoding='utf-8')
appendData = '\n\nPython Programming'
f.write(appendData)
f = open('test2.txt', 'r', encoding='utf-8')
print(f.read())
f.close()
test2.txt 파일에 appendData 안의 문자열을 추가한다.
01234
abcde
가나다라마
Python Programming
with문이 종료되면 파일 객체는 자동으로 close()
with open(파일명, 열기모드, 인코딩) as 파일 객체 :
수행 코드1
수행 코드2
….
file = 'test3.txt' # 파일 명을 변수에 저장할 수 있다.
data = 'Python Programming'
with open(file, 'a', encoding='utf-8') as f: # f = open('test3.txt', 'w', encoding='utf-8')
f.write(data+'\n')
Python Programming
Python Programming
import os
os.mkdir('log') # 해당 py파일이 존재하는 같은 경로에 log라는 폴더를 생성
import shutil # 해당 py파일이 존재하는 같은 경로에 위치한 log라는 폴더를 삭제
shutil.rmtree('log')
# 기존 디렉터리 확인
import os.path
if not os.path.isdir('log'): # 만약 log라는 폴더가 해당 위치에 없다면
os.mkdir('log') # log 폴더를 만들어라
# os.mkdir('log') # 이미 기존에 log 폴더가 존재해 오류가 발생
import os
for dirName, subDir, fnames in os.walk('c:/pythonStudy/Day8'):
print(fnames)
for fname in fnames:
# print(os.path.join(dirName, fname))
print(fname)
....
['moduel12.py', 'module11.py', '__init__.py']
moduel12.py
module11.py
__init__.py
['moduel12.cpython-310.pyc', 'module11.cpython-310.pyc', '__init__.cpython-310.pyc']
moduel12.cpython-310.pyc
module11.cpython-310.pyc
__init__.cpython-310.pyc
['module21.py', 'module22.py', '__init__.py']
module21.py
module22.py
__init__.py
['module31.py', 'module32.py', '__init__.py']
module31.py
module32.py
__init__.py
['__init__.cpython-310.pyc']
__init__.cpython-310.pyc
import os.path
print(os.path.exists('c:/pythonStudy')) #폴더가 있어서 True값 반환
print(os.path.exists('c:/pythonStudy/test.txt')) #해당 경로에 test.txt가 없어서 False 반환
print(os.path.isdir('c:/pythonStudy')) # 해당 폴더가 존재하기에 True
print(os.path.isfile('c:/pythonStudy')) # 해당 이름의 파일이 없기에 False
import os
# os.remove('c:/pythonStudy/test.py')
# 만약 해당 경로의 파일이 없다면 오류가 뜬다.
a = os.path.getsize('c:/pythonStudy/main.py')
print(a)
import zipfile
new = zipfile.ZipFile('c:/pythonStudy/Day8/Day8.zip', 'w') # 지정한 위치에 지정한 이름의 압축파일을 만듦.
new.write('c:/pythonStudy/Day8/fileIO/test2.txt', compress_type=zipfile.ZIP_DEFLATED) # 압축할 파일을 정함.
new.close()
ext = zipfile.ZipFile('c:/pythonStudy/Day8/Day8.zip', 'r') # 압축파일을 읽어와 변수에 저장
ext.extractall('c:/pythonStudy/') # 압축파일을 지정 경로에 푼다.
ext.close()
import os # os 모듈을 호출
if not os.path.isdir('log'): # 만약 log라는 폴더가 존재하지 않는다면
os.mkdir('log') # log라는 이름의 폴더를 만들어라!
if not os.path.exists('log/countLog.txt'): # log 폴더 하위에 countLog.txt 파일이 존재하지 않는다면
f = open('log/countLog.txt', 'w', encoding='utf-8') # countLog.txt 파일을 생성
f.write('기록시작\n') # 기록시작(줄바꿈)을 countLog.txt 파일에 작성 후
f.close() # 종료
with open('log/countLog.txt', 'a', encoding='utf-8') as f:
# with을 사용해 open/close 동시 해결
# countLog.txt에 내용을 추가하는 'a'
# alias = f
import datetime, random # 날짜시간 모듈과 랜덤 모듈 호출
for i in range(10): # 10회 반복
stamp = str(datetime.datetime.now()) # 현재 날짜와 시간 저장
value = random.random() * 1000000 # 0과 1사이의 랜덤한 값을 백만배로 곱해주기
log_line = stamp + '\t' + str(value) + '값 생성\n' # 위의 두 값을 이어붙인다.
f.write(log_line) # countLog.txt 에 내용 작성
기록시작
2022-01-03 15:40:20.453091 984483.9636461178값 생성
2022-01-03 15:40:20.453091 926793.3563745391값 생성
2022-01-03 15:40:20.453091 341696.9632425417값 생성
2022-01-03 15:40:20.453091 732976.253184998값 생성
2022-01-03 15:40:20.453091 317465.7040951553값 생성
2022-01-03 15:40:20.453091 953568.146178258값 생성
2022-01-03 15:40:20.453091 725577.1279350694값 생성
2022-01-03 15:40:20.453091 851737.6810587979값 생성
2022-01-03 15:40:20.453091 517171.0043578899값 생성
2022-01-03 15:40:20.453091 864225.8081886568값 생성
2022-01-03 15:41:32.412175 805705.0459983537값 생성
2022-01-03 15:41:32.412175 830118.3735400231값 생성
2022-01-03 15:41:32.412175 713992.2626785933값 생성
2022-01-03 15:41:32.412175 180278.90745187568값 생성
2022-01-03 15:41:32.412175 635766.1216173386값 생성
2022-01-03 15:41:32.412175 180773.25353567253값 생성
2022-01-03 15:41:32.412175 698079.0317322136값 생성
2022-01-03 15:41:32.412175 872830.1752858293값 생성
2022-01-03 15:41:32.412175 58125.309250513514값 생성
2022-01-03 15:41:32.412175 440261.0159612521값 생성
# 이런식으로 저장된다.
f1 = open('c:/windows/notepad.exe', 'rb') # 메모장 응용프로그램을 이진 수로 읽어온다.
f2 = open('c:/Temp/notepad.exe', 'wb') # temp 경로에 notepad.exe 파일을 생성 후 작성 준비
while True:
inStr = f1.read(1) # 메모장 응용프로그램을 1바이트 씩 읽어서
if not inStr: # 파일의 끝(더 이상 읽을게 없음)
break # 끝내고
else:
f2.write(inStr) # 그게 아니라면 계속 작성
f1.close()
f2.close()
메모리에 로딩 된 객체나 정의된 클래스 파일로 저장하여 사용
호출
import pickle
객체 저장 : pickle.dump()
f = open('list.pickle', 'wb') # list.pickle을 생성
result = [1,2,3,4,5] # result라는 값이 있는 리스트 생성
pickle.dump(result, f) # list.pickle 파일에 result의 값 작성
f.close()
객체 로딩 : pickle.load()
f = open('list.pickle', 'rb') # list.pickle을 읽기 모드로
result2 = pickle.load(f) # 값을 불러와 result2에 저장
print(result2)
result2.append(100) # result2 리스트의 마지막에 100 추가
print(result2)
파일 및 폴더 생성
파일 시스템 탐색
도움말(man -> manual)
명령어 기초
유닉스(Unix)
특정 코드 지연 실행 - DispatchQueue.main.asyncAfter(deadline: )
Naming Conventions
안드로이드 폰과 맥북에어 M1 USB 테더링 성공
Simulator 풀 스크린 사용 방법
10807번 - 개수 세기
프로그래머스 Lv.1 풀이 코드 모음
프로그래머스 Lv.1 풀이 코드 모음
11047번 - 동전 0
11659번 - 구간 합 구하기 4
14888번 - 연산자 끼워넣기
9184번 - 신나는 함수 실행
24416번 - 알고리즘 수업 - 피보나치 수 1
2580번 - 스도쿠
9663번 - N-Queen
15652번 - N과 M (4)
15651번 - N과 M (3)
15650번 - N과 M (2)
25305번 - 커트라인
25304번 - 영수증
3003번 - 킹, 퀸, 룩, 비숍, 나이트, 폰
15649번 - N과 M (1)
2004번 - 조합 0의 개수
1676번 - 팩토리얼 0의 개수
9375번 - 패션왕 신해빈
1010번 - 다리 놓기
11051번 - 이항 계수 2
11050번 - 이항 계수 1
3036번 - 링
2981번 - 검문
1934번 - 최소공배수
2609번 - 최대공약수와 최소공배수
1037번 - 약수
5086번 - 배수와 약수
1358번 - 하키
1004번 - 어린 왕자
1002번 - 터렛
3053번 - 택시 기하학
2477번 - 참외밭
4153번 - 직각삼각형
3009번 - 네 번째 점
1085번 - 직사각형에서 탈출
11478번 - 서로 다른 부분 문자열의 개수
1269번 - 대칭 차집합
1764번 - 듣보잡
10816번 - 숫자 카드 2
1620번 - 나는야 포켓몬 마스터 이다솜
14425번 - 문자열 집합
10815번 - 숫자 카드
18870번 - 좌표 압축
10814번 - 나이순 정렬
1181번 - 단어 정렬
11651번 - 좌표 정렬하기 2
11650번 - 좌표 정렬하기
1427번 - 소트인사이드
2108번 - 통계학
10989번 - 수 정렬하기 3
2751번 - 수 정렬하기 2
2750번 - 수 정렬하기
22.06.25 ~ 27 부산 먹부림 기록
1436번 - 영화감독 숌
1018번 - 체스판 다시 칠하기
7568번 - 덩치
2231번 - 분해합
2798번 - 블랙잭
11729번 - 하노이 탑 이동 순서
2447번 - 별 찍기 - 10
17478번 - 재귀함수가 뭔가요?
10870번 - 피보나치 수 5
10872번 - 팩토리얼
9020번 - 골드바흐의 추측
4948번 - 베르트랑 공준
1929번 - 소수 구하기
11653번 - 소인수분해
2581번 - 소수
1978번 - 소수 찾기
10757번 - 큰 수 A+B
2839번 - 설탕 배달
2775번 - 부녀회장이 될테야
10250번 - ACM 호텔
2869번 - 달팽이는 올라가고 싶다
1193번 - 분수찾기
2292번 - 벌집
1712번 - 손익분기점
1316번 - 그룹 단어 체커
2941번 - 크로아티아 알파벳
5622번 - 다이얼
2908번 - 상수
1152번 - 단어의 개수
1157번 - 단어 공부
2675번 - 문자열 반복
10809번 - 알파벳 찾기
11720번 - 숫자의 합
11654번 - 아스키 코드
1065번 - 한수
4673번 - 셀프 넘버
15596번 - 정수 N개의 합
4344번 - 평균은 넘겠지
8958번 - OX퀴즈
25083번 - 새싹
Spark Bigdata Pipeline
Spark 3일차
Spark 2일차
1546번 - 평균
Spark 1일차
Hadoop🐘
3052번 - 나머지
2577번 - 숫자의 개수
2562번 - 최댓값
10818번 - 최소, 최대
Linux
MongoDB 조회 문제
MongoDB
1110번 - 더하기 사이클
10951번 - A+B - 4
Oracle 3️⃣
ORACLE 연습용 문제 만들기 숙제
10952번 - A+B - 5
Oracle 2️⃣
2480번 - 주사위 세개
Oracle Day1️⃣
Tensorflow
Big Data
2525번 - 오븐 시계
10871번 - X보다 작은 수
2439번 - 별 찍기 - 2
2438번 - 별 찍기 - 1
11022번 - A+B - 8
11021번 - A+B - 7
2742번 - 기찍 N
2741번 - N 찍기
15552번 - 빠른 A+B
8393번 - 합
10950번 - A+B - 3
9️⃣ 2739번 - 구구단
2884번 - 알람 시계
14681번 - 사분면 고르기
⛏크롤링(Crawling)
2753번 - 윤년
Django 복습 4️⃣
Django 복습 3️⃣
💯 9498번 - 시험 성적
1330번 - 두 수 비교하기
✖ 2588번 - 곱셈
➗ 10430번 - 나머지
Django 복습 2️⃣
Django 복습 1
MySQL 복습!
⁉10926번 - ??!
🆎1008번 - A/B
👩🦲 18108번 - 1998년생인 내가 태국에서는 2541년생?!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
🎈✨경 축✨🎈
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
선형 자료구조(1일차에 이어서)
🆎10998번 - A×B
🆎1001번 - A-B
🆎1000번 - A+B
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
🐶10172번 - 개
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
🐱10171번 - 고양이
[해당 포스트는 유튜버 나동빈님의 영상을 참고했습니다.]
❤10718번 - We love kriii
🖐2557번 - Hello World
Today I Learned(TIL)📌 (2021.12.31)
Today I Learned(TIL)📌 (2021.12.30)
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!
[noitce!!] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!