2020.11.11ログ
今日のダイジェスト
今日学んだことの中で、ファイルCRUD(create、read、update、delete)が一番重要です.
# 파일 권한 & 파일 생성
"r" : Read
"a" : Append
"w" : Write
"x" : Create
"t" : Text
"b" : Binary # 텍스트를 제외한 모든 파일
file_create.py
# 파일 생성
f = open("a.txt", "xt")
f = open("aa.dump", "xb")
print("파일 생성 완료")
print()
file_write.py
# 파일 쓰기
f = open("b.txt", "a") #추가
f.write("추가되는 문자열")
f.close()
f = open("b.txt", "w") #쓰기
f.write("덮어쓴 문자열")
f.close()
file_read.py
# 상대경로로 파일읽기
#f = open("a.txt", "rt") # "rt"는 default 권한
f = open("b.txt", "r") # 읽기
print(f.read())
print()
# 절대경로로 파일읽기
f = open("C:\\PYH\\00_java\\00_java\\day015\\00_temp\\수스자바.java", "r") # 읽기
print(f.read())
print("######################")
f = open("C:\\PYH\\00_java\\00_java\\day015\\00_temp\\수스자바.java", "r") # 읽기
print(f.read(5)) #캐릭터(문자) 갯수 만큼
file_delete.py
# (1) 파일 삭제
import os
if os.path.exists("aa.dump"):
print("해당 파일 존재")
os.remove("aa.dump")
else:
print("해당 파일 없음")
print()
# (2) 디렉토리 삭제
if os.path.exists("삭제될폴더"):
print("해당 폴더 존재")
os.rmdir("삭제될폴더")
else:
print("해당 폴더 없음")
print()
file_directory_delete.py(サブディレクトリ全体を削除)
import os
def listDir(dir):
fnames = os.listdir(dir)
#print(fnames)
for fname in fnames:
if os.path.isfile(fname):
print("[File]", fname)
else:
print("[Dir]", fname)
def removeSubFiles(dir):
fnames = os.listdir(dir)
for fname in fnames:
full_fname = os.path.join(dir, fname)
#print(full_fname)
if os.path.isfile(full_fname):
os.remove(full_fname)
else:
fnames = os.listdir(full_fname)
if len(fnames)==0:
os.rmdir(full_fname)
else:
removeSubFiles(full_fname)
os.rmdir(dir)
target = "삭제될폴더"
if os.path.exists(target):
listDir(target) # (1) 디렉토리 하위 리스팅
removeSubFiles(target) # (2) 디렉토리 하위 삭제
os.rmdir(target) # (3) 자신의 디렉토리 삭제
else:
print("'삭제될폴더' 없음")
typing_game.py
#(1) 파일을 연다
fname = "original.txt"
f = open(fname, "r")
#print(f.read())
#print(f.readlines())
#print(f.readline())
#(2) 파일을 읽어서 set에 담는다
#s = {} # 기본값이 dict으로 인식
s = set()
while True:
line = f.readline()
if not line: break # 상당히 중요함
line = line.strip()
#print(line)
s.add(line)
f.close()
#(3) set를 list로 이동시킨다
li = []
for x in s:
li.append(x)
#print(li)
#(4) 랜덤한 문제를 출력한다
import random
q = random.choice(li)
#print(q)
#(5) 그 문제와 타이핑한 내용을 비교하여 통과하거나 다시 도전하게 한다
#(6) 게임시간을 체킹하여 걸린시간을 출력해준다
print("[타자 게임!! 준비되면 엔터!!]")
input()
import time
start = time.time()
print(start)
# 게임 진행
n = 1 #문제번호
while n<=3:
print("#문제", n)
print(q)
x = input()
if q == x:
print("통과!")
n+=1
q = random.choice(li)
else:
print("오타! 다시 도전!")
end = time.time()
print(end)
et = end - start
et = format(et, ".2f")
print("타자시간: ", et , "초")
理解する概念
os.path.join
:対応するオペレーティングシステム形式で入力されたパスを接続します.入力の途中に絶対パスが表示された場合は、以前に取得したパスを削除し、再接続します.lambda
食は既存の食をより多様化させること.self
クラス定義用오버라이딩
Javaとは若干コンセプトが異なるNone
ジャワnull
Reference
この問題について(2020.11.11ログ), 我々は、より多くの情報をここで見つけました https://velog.io/@peachy/study-018テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol