ç®æ¬¡
- 1 1. withæã®åºæ¬çè§£
- 2 2. withæã®åºæ¬çãªäœ¿ãæ¹
- 3 3. ãã¡ã€ã«æäœã«ãããwithæã®ã¢ãŒã
- 4 4. è€æ°ãã¡ã€ã«ã®åææäœ
- 5 5. withæã®ã¡ãªãã
- 6 6. å®è·µäŸãšãã¹ããã©ã¯ãã£ã¹
- 7 7. Python3.3以éã®withæã®å¿çš
- 8 8. Python3.9以éã®withæã®æ©èœåŒ·å
- 9 9. withæã䜿ãéã®æ³šæç¹
- 10 10. ãŸãšã
1. with
æã®åºæ¬çè§£
Pythonã®with
æã¯ããªãœãŒã¹ç®¡çãç°¡æœã«è¡ãããã®æ§æã§ããäŸãã°ããã¡ã€ã«æäœããããã¯ãŒã¯æ¥ç¶ãããŒã¿ããŒã¹æ¥ç¶ãªã©ãç¹å®ã®ãªãœãŒã¹ãéããŠå©çšãããã®åŸå¿
ãéããå¿
èŠãããæäœã«äœ¿ãããŸããwith
æã䜿ããšããªãœãŒã¹ã®éæŸïŒã¯ããŒãºïŒãèªåçã«è¡ã£ãŠããããããã³ãŒããã·ã³ãã«ã«ãªãããšã©ãŒã®çºçãé²ãããããªããŸããwith
æãšã¯ïŒ
Pythonã®with
æã¯ããã³ã³ããã¹ããããŒãžã£ãŒããšããä»çµã¿ãå©çšããŠããªãœãŒã¹ã®ãªãŒãã³ãšã¯ããŒãºãèªåçã«ç®¡çããŸããéåžžããã¡ã€ã«ãéããšãã«ã¯open()
颿°ã䜿ããåŠçåŸã«close()
ã¡ãœããã§ãã¡ã€ã«ãéããå¿
èŠããããŸããããããwith
æã䜿ããšããã®äžé£ã®æäœãäžè¡ã§ãŸãšãããããã¡ã€ã«ãèªåçã«ã¯ããŒãºããããããã³ãŒããç°¡æœã«ãªããŸããwith open('example.txt', 'r') as file:
content = file.read()
äžèšã®ã³ãŒãã§ã¯ããã¡ã€ã«ãéããŠèªã¿èŸŒãã åŸãèªåçã«ãã¡ã€ã«ãéããããŸããwith
æã¯ããªãœãŒã¹ç®¡çãç°¡çŽ åããã³ãŒãã®å¯èªæ§ãé«ããããã®éåžžã«äŸ¿å©ãªæ§æã§ãã2. with
æã®åºæ¬çãªäœ¿ãæ¹
with
æã䜿ããšããªãœãŒã¹ã®ãªãŒãã³ãšã¯ããŒãºãæç€ºçã«è¡ãå¿
èŠããªããªããã³ãŒãããã£ããããŸãããã¡ã€ã«æäœã®åºæ¬çãªäŸãšããŠããã¡ã€ã«ãéããŠèªã¿èŸŒã¿ããã®å
容ã衚瀺ããã³ãŒããèŠãŠã¿ãŸããããwith
æã䜿ã£ããã¡ã€ã«æäœã®äŸ
以äžã®ã³ãŒãã¯ãwith
æã䜿ã£ãŠãã¡ã€ã«ãèªã¿èŸŒãåºæ¬çãªäŸã§ããwith open('sample.txt', 'r') as file:
content = file.read()
print(content)
ãã®ã³ãŒãã§ã¯ãopen()
颿°ã§ãã¡ã€ã«ãéããas
ããŒã¯ãŒãã§ãã¡ã€ã«ãªããžã§ã¯ããfile
ã«å²ãåœãŠãŠããŸãããã¡ã€ã«ã®å
容ãread()
ã¡ãœããã§èªã¿èŸŒã¿ãprint()
颿°ã§è¡šç€ºããŸããwith
æã䜿ãããšã§ãclose()
ã¡ãœãããåŒã³åºãå¿
èŠããªããªãããªãœãŒã¹ã®éæŸãèªåçã«è¡ãããŸããwith
æã䜿ããªãå Žåãšã®æ¯èŒ
with
æã䜿ããªãå Žåããã¡ã€ã«ã®ã¯ããŒãºãæåã§è¡ãå¿
èŠããããŸããfile = open('sample.txt', 'r')
content = file.read()
print(content)
file.close()
ãã®ã³ãŒãã§ã¯ãopen()
ã§ãã¡ã€ã«ãéããåŸãåŠçãçµãã£ããfile.close()
ã§ãã¡ã€ã«ãéããå¿
èŠããããŸããwith
æã䜿ãããšã§ããã®ã¯ããŒãºæäœãèªååããã³ãŒãã®å®å
šæ§ãé«ããããšãã§ããŸãã3. ãã¡ã€ã«æäœã«ãããwith
æã®ã¢ãŒã
with
æã䜿ã£ãŠãã¡ã€ã«ãéãéã«ã¯ããã¡ã€ã«ã®æäœã¢ãŒããæå®ããå¿
èŠããããŸããäž»ã«äœ¿çšãããã¢ãŒãã«ã¯ãèªã¿èŸŒã¿ã¢ãŒãïŒ'r'
ïŒãæžã蟌ã¿ã¢ãŒãïŒ'w'
ïŒã远èšã¢ãŒãïŒ'a'
ïŒããããŸããåã¢ãŒãã®èª¬æ
'r'
ïŒèªã¿èŸŒã¿ã¢ãŒãããã¡ã€ã«ãèªã¿èŸŒãããã«éããŸãããã¡ã€ã«ãååšããªãå Žåã¯ãšã©ãŒã«ãªããŸãã'w'
ïŒæžã蟌ã¿ã¢ãŒãããã¡ã€ã«ãæžã蟌ãããã«éããŸãããã¡ã€ã«ãååšããªãå Žåã¯æ°èŠäœæãããæ¢åã®ãã¡ã€ã«ãããå Žåã¯äžæžããããŸãã'a'
ïŒè¿œèšã¢ãŒãããã¡ã€ã«ã®æ«å°Ÿã«è¿œèšããããã«éããŸãããã¡ã€ã«ãååšããªãå Žåã¯æ°èŠäœæãããŸãã
æžã蟌ã¿ãšè¿œèšã®äŸ
次ã«ãwith
æã䜿ã£ãŠãã¡ã€ã«ã«ããŒã¿ãæžã蟌ãäŸãèŠãŠã¿ãŸãããã# æ°èŠäœæããæžã蟌ã¿ã¢ãŒãã§ãã¡ã€ã«ãéã
with open('sample.txt', 'w') as file:
file.write('Hello, world!\n')
# 远èšã¢ãŒãã§ãã¡ã€ã«ãéã
with open('sample.txt', 'a') as file:
file.write('This is an additional line.\n')
ãã®äŸã§ã¯ããŸã'w'
ã¢ãŒãã§ãã¡ã€ã«ãéããããã¹ããæ°èŠäœæããŸãããã®åŸã'a'
ã¢ãŒãã§åããã¡ã€ã«ã«ããã¹ãã远èšããŠããŸãã
4. è€æ°ãã¡ã€ã«ã®åææäœ
with
æã¯è€æ°ã®ãã¡ã€ã«ãåæã«æäœããããšãå¯èœã§ããè€æ°ã®ãã¡ã€ã«ãåæã«éããŠåŠçããéã«ã¯ãwith
æããã¹ãããæ¹æ³ãšãã«ã³ãåºåãã§äžè¡ã«ãŸãšããæ¹æ³ã®2ã€ããããŸãããã¹ãããwith
æã®äœ¿çš
è€æ°ã®with
æããã¹ãããŠäœ¿çšããæ¹æ³ã§ããwith open('file1.txt', 'r') as file1:
with open('file2.txt', 'r') as file2:
content1 = file1.read()
content2 = file2.read()
print(content1, content2)
ãã®æ¹æ³ã¯çŽæçã§ããããã¹ããæ·±ããªããšã³ãŒããèŠã¥ãããªãããšããããŸããäžè¡ã«ãŸãšããwith
æã®äœ¿çš
ã«ã³ãã§åºåã£ãŠäžè¡ã«ãŸãšããæ¹æ³ã§ããwith open('file1.txt', 'r') as file1, open('file2.txt', 'r') as file2:
content1 = file1.read()
content2 = file2.read()
print(content1, content2)
ãã®æ¹æ³ã¯ã³ãŒãããã£ããããŸããããªããžã§ã¯ãã®æ°ãå¢ãããšæšªã«é·ããªããããå¿
èŠã«å¿ããŠæ¹è¡ãå ãããšè¯ãã§ãããã5. with
æã®ã¡ãªãã
with
æã䜿ãããšã§ãã³ãŒãã®èŠãç®ã ãã§ãªããå®éã®æ©èœé¢ã§ãå€ãã®ã¡ãªããããããŸããèªåã¯ããŒãºã«ãããšã©ãŒé²æ¢
with
æã®æå€§ã®ã¡ãªããã¯ãèªåçã«ãªãœãŒã¹ãè§£æŸããŠãããããšã§ãããã¡ã€ã«æäœã«ãããŠãclose()
ã¡ãœããã®åŒã³åºãå¿ãã«ãããšã©ãŒã鲿¢ã§ããç¹ã«å€§èŠæš¡ãªãããžã§ã¯ããé·ãã³ãŒãã®äžã§å®å
šæ§ãé«ããŸããã³ãŒãã®å¯èªæ§åäž
with
æã¯ãªãœãŒã¹æäœãäžã€ã®ãããã¯ã«ãŸãšãããããã©ãããã©ããŸã§ããã®åŠçãªã®ããæç¢ºã«ãªããŸããä»ã®éçºè
ãã³ãŒããèªãã éã«ããwith
æãèŠãã°ãªãœãŒã¹ã®ãªãŒãã³ãšã¯ããŒãºãèªåçã«è¡ãããããšãããã«çè§£ã§ããŸãã人çãã¹ã®è»œæž
with
æã䜿ãããšã§ãã¯ããŒãºå¿ãããªãœãŒã¹ã®äœ¿ãæ¹ã®ãã¹ãæžããããšãã§ããŸããç¹ã«è€éãªãªãœãŒã¹æäœã絡ãå Žåãwith
æã䜿ãããšã§ãã¹ãé²ããå®å
šã§å¹ççãªã³ãŒããæžãããšãå¯èœã§ãã6. å®è·µäŸãšãã¹ããã©ã¯ãã£ã¹
æåŸã«ãwith
æã®å®è·µçãªäŸãšãã¹ããã©ã¯ãã£ã¹ã玹ä»ããŸãããã¡ã€ã«æäœä»¥å€ã®with
æã®äœ¿çšäŸ
with
æã¯ãã¡ã€ã«æäœä»¥å€ã«ã䜿ããŸããäŸãã°ããããã¯ãŒã¯æ¥ç¶ãããŒã¿ããŒã¹æ¥ç¶ãªã©ããªãœãŒã¹ã®ç®¡çãå¿
èŠãªå Žé¢ã§ã䜿çšãããŸããimport sqlite3
with sqlite3.connect('example.db') as connection:
cursor = connection.cursor()
cursor.execute('SELECT * FROM table_name')
ãã®äŸã§ã¯ãããŒã¿ããŒã¹æ¥ç¶ãwith
æã§ç®¡çããåŠçãçµãããšèªåçã«æ¥ç¶ãéããããŸãããã¹ããã©ã¯ãã£ã¹
- åžžã«
with
æã䜿çšããïŒãã¡ã€ã«æäœããªãœãŒã¹ç®¡çãè¡ãéã¯ãwith
æã䜿ãããšãç¿æ £ã«ããŸããããããã«ãããã¯ããŒãºå¿ããªã©ã®ãã¹ãé²ããŸãã - ç°¡æœãªã³ãŒããæžãïŒ
with
æã䜿ãããšã§ãã³ãŒããç°¡æœã«ããä»ã®éçºè ãçè§£ããããã³ãŒããæžãããšãã§ããŸãã
7. Python3.3以éã®with
æã®å¿çš
Python 3.3以éã§ã¯ãcontextlib
ã¢ãžã¥ãŒã«ã®ExitStack
ãå©çšããŠãè€æ°ã®ãªãœãŒã¹ãæè»ã«ç®¡çããããšãã§ããŸããããã«ããããªãœãŒã¹ã®æ°ãåçã«å€åããå Žåã§ãwith
æã䜿ã£ãå¹ççãªãªãœãŒã¹ç®¡çãå¯èœã§ããExitStack
ã䜿ã£ãè€æ°ãã¡ã€ã«æäœ
次ã®äŸã¯ãExitStack
ã䜿ã£ãŠè€æ°ã®ãã¡ã€ã«ãåæã«éãæ¹æ³ã瀺ããŠããŸããfrom contextlib import ExitStack
with ExitStack() as stack:
file1 = stack.enter_context(open('file1.txt', 'r'))
file2 = stack.enter_context(open('file2.txt', 'r'))
file3 = stack.enter_context(open('file3.txt', 'r'))
# ããããã®ãã¡ã€ã«ã®å
容ãèªã¿èŸŒã
content1 = file1.read()
content2 = file2.read()
content3 = file3.read()
print(content1, content2, content3)
ãã®æ¹æ³ã§ã¯ããã¡ã€ã«æ°ãåçã«å¢æžããå Žåããä»ã®ãªãœãŒã¹ãšçµã¿åãããŠäœ¿ãå Žåã§ãå¹ççã«ç®¡çã§ããŸãã
8. Python3.9以éã®with
æã®æ©èœåŒ·å
Python 3.9以éã§ã¯ãwith
æã®èšè¿°æ¹æ³ãããã«åŒ·åãããããã·ã³ãã«ã«è€æ°ã®ã³ã³ããã¹ããããŒãžã£ãæ±ãããšãã§ããããã«ãªããŸãããã¿ãã«ã䜿ã£ãwith
æã®èšè¿°
Python 3.9以éã§ã¯ãwith
æã§ã¿ãã«ã®ããã«è€æ°ã®ãªããžã§ã¯ããæå®ããããšãå¯èœã§ããæ¬¡ã®äŸã¯ãPython 3.9ã®æ°ããèšè¿°æ¹æ³ã瀺ããŠããŸããwith (open('file1.txt', 'r') as file1,
open('file2.txt', 'r') as file2,
open('file3.txt', 'r') as file3):
content1 = file1.read()
content2 = file2.read()
content3 = file3.read()
print(content1, content2, content3)
ãã®æ¹æ³ã§ã¯ãåãã¡ã€ã«ãã¿ãã«ã®èŠçŽ ãšããŠæå®ããäžè¡ã«ãŸãšããŠèšè¿°ã§ããŸããããã«ãããã³ãŒããããã«èŠããããªããŸãã9. with
æã䜿ãéã®æ³šæç¹
with
æã¯éåžžã«äŸ¿å©ã§å€ãã®ã¡ãªããããããŸãããäœ¿ãæ¹ã«æ³šæãå¿
èŠãªç¹ããããŸããwith
æã®äœ¿ãæ¹ã«é¢ããæ³šæç¹
- äŸå€åŠçãšã®çµã¿åãã:
with
æã®äžã§äŸå€ãçºçããå ŽåããªãœãŒã¹ã¯èªåçã«è§£æŸãããŸãããäŸå€åŠçã®ãããã¯ã䜿çšããŠãšã©ãŒãã³ããªã³ã°ãè¡ããšãã³ãŒãã®ä¿¡é Œæ§ãåäžããŸãã - ãªãœãŒã¹ã®çš®é¡:
with
æã¯ãã¡ã€ã«ä»¥å€ã®ãªãœãŒã¹ã«ã䜿çšã§ããŸããããã®ãªãœãŒã¹ãã³ã³ããã¹ããããŒãžã£ããµããŒãããŠããå¿ èŠããããŸãããµããŒããããŠããªããªãœãŒã¹ã§ã¯ãwith
æã¯äœ¿ããŸããã
10. ãŸãšã
Pythonã®with
æã¯ããªãœãŒã¹ã®ç®¡çãç°¡çŽ åããã³ãŒãã®å®å
šæ§ãšå¯èªæ§ãåäžããã匷åãªããŒã«ã§ããç¹ã«ãã¡ã€ã«æäœããããã¯ãŒã¯æ¥ç¶ãªã©ããªãœãŒã¹ã®ãªãŒãã³ãšã¯ããŒãºãå¿
èŠãªå Žåã«ãã®åšåãçºæ®ããŸãããã®èšäºã§ã¯ãwith
æã®åºæ¬çãªäœ¿ãæ¹ããå¿çšäŸãã¡ãªãããæ³šæç¹ãŸã§å¹
åºã解説ããŸããã- ã³ãŒãã®ç°¡æœå:
with
æã䜿ãããšã§ããªãœãŒã¹ã®ã¯ããŒãºãèªååããã³ãŒããç°¡æœã«ä¿ã€ããšãã§ããŸãã - ãšã©ãŒã®é²æ¢:
with
æã¯ãªãœãŒã¹ã®ã¯ããŒãºå¿ãã«ãããšã©ãŒãé²ããã³ãŒãã®ä¿¡é Œæ§ãé«ããŸãã - Pythonã®ããŒãžã§ã³ããšã®åŒ·å: Python 3.3以éã3.9以éã§ã®
with
æã®æ©èœåŒ·åã«ãããããã«æè»ã§å¹ççãªãªãœãŒã¹ç®¡çãå¯èœãšãªã£ãŠããŸãã
with
æãç©æ¥µçã«æŽ»çšããããšã§ãã³ãŒãã®å質ãåäžãããããšãã§ããŸãããã®æ©äŒã«with
æã䜿ãããªããPythonããã°ã©ãã³ã°ã®ã¹ãã«ãäžæ®µãšåäžãããŸãããã