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とは若干コンセプトが異なる
  • PythonNoneジャワnull