- 1 1. ã¯ããã«
- 2 2. ã«ã¬ã³ããã£ã¬ã¯ããªãšã¯ïŒ
- 3 3. ã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸæ¹æ³
- 3.1 ã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸãšã¯ïŒ
- 3.2 1. os ã¢ãžã¥ãŒã«ã䜿ã£ãã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸ
- 3.3 2. pathlib ã¢ãžã¥ãŒã«ã䜿ã£ãã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸ
- 3.4 3. os.getcwd() ãš Path.cwd() ã®æ¯èŒ
- 3.5 4. ã«ã¬ã³ããã£ã¬ã¯ããªãååŸããéã®æ³šæç¹
- 3.6 ãŸãšã
- 4 4. ã«ã¬ã³ããã£ã¬ã¯ããªã®å€æŽæ¹æ³
- 5 5. ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«äžèŠ§ãååŸããæ¹æ³
- 5.1 1. os.listdir() ã䜿ã£ããã¡ã€ã«äžèŠ§ã®ååŸ
- 5.2 2. os.listdir() ã§ãã¡ã€ã«ã®ã¿ãååŸ
- 5.3 3. os.listdir() ã§ç¹å®ã®æ¡åŒµåã®ãã¡ã€ã«ãååŸ
- 5.4 4. pathlib ã䜿ã£ããã¡ã€ã«äžèŠ§ã®ååŸ
- 5.5 5. pathlib ã§ãã¡ã€ã«ã®ã¿ãååŸ
- 5.6 6. os.listdir() vs pathlib ã®æ¯èŒ
- 5.7 ãŸãšã
- 6 6. å®è¡äžã®ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãååŸããæ¹æ³
- 6.1 1. __file__ å€æ°ã䜿ã£ãã¹ã¯ãªããã®ãã£ã¬ã¯ããªååŸ
- 6.2 2. pathlib ã䜿ã£ãã¹ã¯ãªããã®ãã£ã¬ã¯ããªååŸ
- 6.3 3. ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãã«ã¬ã³ããã£ã¬ã¯ããªã«èšå®ãã
- 6.4 4. ã¹ã¯ãªããã®ãã£ã¬ã¯ããªã䜿çšããå®çšäŸ
- 6.5 ãŸãšã
- 7 7. ãããã質åïŒFAQïŒ
- 7.1 Q1: os.getcwd() ãš os.path.abspath('.') ã¯äœãéãã®ã§ããïŒ
- 7.2 Q2: os.chdir() ã䜿ã£ãŠã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽãããšãã¹ã¯ãªããå šäœã«åœ±é¿ããããŸããïŒ
- 7.3 Q3: pathlib ãš osãã©ã¡ãã䜿ãã¹ãã§ããïŒ
- 7.4 Q4: os.listdir() ã§ãã¡ã€ã«äžèŠ§ãååŸãããšããã©ã«ããšãã¡ã€ã«ãæ··ãããŸãããã¡ã€ã«ã ããååŸã§ããŸããïŒ
- 7.5 Q5: __file__ ã䜿ããšãšã©ãŒãåºãŸãããªãã§ããïŒ
- 7.6 Q6: os.chdir() ã䜿ããã«ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãåºæºã«ãã¡ã€ã«ãéãæ¹æ³ã¯ãããŸããïŒ
- 7.7 ãŸãšã
- 8 8. ãŸãšã
- 8.1 1. ã«ã¬ã³ããã£ã¬ã¯ããªãšã¯ïŒ
- 8.2 2. ã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸæ¹æ³
- 8.3 3. ã«ã¬ã³ããã£ã¬ã¯ããªã®å€æŽæ¹æ³
- 8.4 4. ã«ã¬ã³ããã£ã¬ã¯ããªå ã®ãã¡ã€ã«äžèŠ§ãååŸ
- 8.5 5. å®è¡äžã®ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãååŸ
- 8.6 6. ãããã質åïŒFAQïŒã®ãã€ã³ã
- 8.7 7. ãã®èšäºã掻ããå Žé¢
- 8.8 8. æåŸã«
- 8.9 åèæç®
1. ã¯ããã«
Pythonã䜿ã£ãŠããã°ã©ãã³ã°ãããéããçŸåšã®ãã£ã¬ã¯ããªïŒã«ã¬ã³ããã£ã¬ã¯ããªïŒã ã®æŠå¿µã¯éåžžã«éèŠã§ããã«ã¬ã³ããã£ã¬ã¯ããªãšã¯ãããã°ã©ã ãå®è¡ãããŠãããã£ã¬ã¯ããªïŒãã©ã«ãïŒã®ããš ãæããPythonã§ãã¡ã€ã«ãèªã¿æžãããéã®åºæºãšãªãå Žæã§ãã
ããšãã°ãPythonã¹ã¯ãªããå
ã§ãdata/sample.txt
ããšããçžå¯Ÿãã¹ãæå®ãããšãã¹ã¯ãªããã®ã«ã¬ã³ããã£ã¬ã¯ããªãåºæºã«ãã®ãã¡ã€ã«ãæ¢ãã«è¡ããŸãããã®ãããã«ã¬ã³ããã£ã¬ã¯ããªãæ£ããç解ããŠãããªããšããã¡ã€ã«ãèŠã€ãããªããšã©ãŒ ã æå³ããªããã©ã«ãã«ããŒã¿ãä¿åããŠããŸã ãšãã£ãåé¡ãçºçããããšããããŸãã
Pythonã§ã«ã¬ã³ããã£ã¬ã¯ããªãæäœããã¡ãªãã
Pythonã§ã«ã¬ã³ããã£ã¬ã¯ããªãååŸã»å€æŽããããšã«ã¯ã以äžã®ãããªã¡ãªããããããŸãã
1. ãã¡ã€ã«ã®èªã¿æžããã¹ã ãŒãºã«ãªã
å€ãã®ããã°ã©ã ã§ã¯ãããŒã¿ãã¡ã€ã«ãèšå®ãã¡ã€ã«ãèªã¿æžãããããšãå¿ èŠã§ããã«ã¬ã³ããã£ã¬ã¯ããªãé©åã«ç®¡çããããšã§ãã¹ã¯ãªãããæåŸ éãã®å Žæãããã¡ã€ã«ãååŸã»ä¿åã§ããããã«ãªããŸãã
2. çžå¯Ÿãã¹ãšçµ¶å¯Ÿãã¹ãé©åã«äœ¿ãåãããã
Pythonã§ã¯ããã¡ã€ã«ãã¹ãçžå¯Ÿãã¹ïŒdata/sample.txt
ïŒãšçµ¶å¯Ÿãã¹ïŒC:/Users/username/project/data/sample.txt
ã /home/user/project/data/sample.txt
ïŒã®äž¡æ¹ã§æå®ã§ããŸããã«ã¬ã³ããã£ã¬ã¯ããªãææ¡ããŠããã°ãã©ã®æ¹æ³ãé©åããå€æãããããªããŸãã
3. ãããžã§ã¯ãã®ç®¡çãç°¡åã«ãªã
倧èŠæš¡ãªãããžã§ã¯ãã§ã¯ãè€æ°ã®ãã©ã«ãã«ãŸããããã¡ã€ã«æ§æãäžè¬çã§ããPythonã®ã¹ã¯ãªãããå®è¡ããéã«ãã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽããããšã§ãç°ãªãç°å¢ã§ãäžè²«ããåäœããããããšãå¯èœ ã«ãªããŸãã
ãã®èšäºã§åŠã¹ãããš
ãã®èšäºã§ã¯ãPythonã§çŸåšã®ãã£ã¬ã¯ããªãååŸã»å€æŽã»äžèŠ§è¡šç€ºããæ¹æ³ã«ã€ããŠè©³ãã解説ããŸãã以äžã®å 容ãé çªã«åŠã¶ããšã§ãPythonã§ãã£ã¬ã¯ããªãæ±ãã¹ãã«ãåäžãããããšãã§ããŸãã
- ã«ã¬ã³ããã£ã¬ã¯ããªãšã¯äœãïŒ
- ã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸæ¹æ³
- ã«ã¬ã³ããã£ã¬ã¯ããªã®å€æŽæ¹æ³
- ã«ã¬ã³ããã£ã¬ã¯ããªå ã®ãã¡ã€ã«äžèŠ§ãååŸããæ¹æ³
- Pythonã¹ã¯ãªãããé 眮ãããŠãããã£ã¬ã¯ããªãååŸããæ¹æ³
- ããããçåïŒFAQïŒãšãã®è§£æ±ºç
ãŸãšã
Pythonã§ã®ãã£ã¬ã¯ããªç®¡çã¯ããã¡ã€ã«æäœãè¡ãäžã§å¿ é ã®ç¥èã§ããæ¬èšäºãèªãããšã§ãPythonã®ãã£ã¬ã¯ããªæäœã«é¢ããç解ãæ·±ããã¹ã ãŒãºãªããã°ã©ã éçºãã§ããããã«ãªãã§ãããã
2. ã«ã¬ã³ããã£ã¬ã¯ããªãšã¯ïŒ
Pythonã䜿ã£ãŠãã¡ã€ã«ãæ±ãéãã«ã¬ã³ããã£ã¬ã¯ããªïŒçŸåšã®ãã£ã¬ã¯ããªïŒã®æŠå¿µãæ£ããç解ããããšãéèŠã§ãããã®ã»ã¯ã·ã§ã³ã§ã¯ãã«ã¬ã³ããã£ã¬ã¯ããªã®å®çŸ©ããã®åœ¹å²ã«ã€ããŠè©³ãã説æããŸãã
ã«ã¬ã³ããã£ã¬ã¯ããªãšã¯ïŒ
ã«ã¬ã³ããã£ã¬ã¯ããªãšã¯ãPythonã¹ã¯ãªãããçŸåšæäœã®åºæºãšããŠãããã©ã«ãã®ããšãæããŸããPythonããã°ã©ã ãå®è¡ããããšããã®ã«ã¬ã³ããã£ã¬ã¯ããªãåºæºã«çžå¯Ÿãã¹ã§ã®ãã¡ã€ã«æäœãè¡ãããŸãã
ããšãã°ã以äžã®ãããªPythonã¹ã¯ãªãããèããŠã¿ãŸãããã
file_path = "data/sample.txt"
with open(file_path, "r") as file:
content = file.read()
ãã®ã¹ã¯ãªããã§ã¯ãdata/sample.txt
ãšããçžå¯Ÿãã¹ã䜿ã£ãŠããŸãããã®å ŽåãPython㯠ãã«ã¬ã³ããã£ã¬ã¯ããª/data/sample.txtã ãšãããã¹ãæ¢ãã«è¡ããŸããã€ãŸããã«ã¬ã³ããã£ã¬ã¯ããªãã©ãã«èšå®ãããŠãããã«ãã£ãŠãããã°ã©ã ã®åäœãå€ãã ãšããããšã§ãã
ã«ã¬ã³ããã£ã¬ã¯ããªã®åœ¹å²
ã«ã¬ã³ããã£ã¬ã¯ããªã¯ãPythonããã°ã©ã ã®å®è¡ç°å¢ã«åœ±é¿ãäžããããã以äžã®ãããªç¹ã§éèŠãªåœ¹å²ãæãããŸãã
1. çžå¯Ÿãã¹ã®åºæºã«ãªã
Pythonã§ã¯ããã¡ã€ã«ã®ãã¹ãæå®ããéã« çžå¯Ÿã㹠㚠絶察ãã¹ ã®2çš®é¡ã®æ¹æ³ããããŸãã
- çžå¯Ÿãã¹ïŒã«ã¬ã³ããã£ã¬ã¯ããªãåºæºãšãããã¹
äŸ:data/sample.txt
ïŒçŸåšã®ãã£ã¬ã¯ããªã«ããdata
ãã©ã«ãå ã®sample.txt
ã«ã¢ã¯ã»ã¹ïŒ - 絶察ãã¹ïŒã«ãŒããã£ã¬ã¯ããªããã®å®å
šãªãã¹
äŸ:C:/Users/username/project/data/sample.txt
ïŒWindowsïŒ
äŸ:/home/user/project/data/sample.txt
ïŒLinuxã»MacïŒ
ã«ã¬ã³ããã£ã¬ã¯ããªãæ£ããç解ããŠããã°ãçžå¯Ÿãã¹ãé©åã«æŽ»çšããããšãã§ããã¹ã¯ãªããã®ç§»æ€æ§ãåäžããŸãã
2. ã¹ã¯ãªããã®å®è¡ç°å¢ã管çã§ãã
ã«ã¬ã³ããã£ã¬ã¯ããªã¯ãPythonã¹ã¯ãªãããå®è¡ãããç°å¢ã«ãã£ãŠç°ãªãå ŽåããããŸããäŸãã°ã以äžã®ãããªç¶æ³ã§ã«ã¬ã³ããã£ã¬ã¯ããªãå€ããããšããããŸãã
å®è¡æ¹æ³ | ã«ã¬ã³ããã£ã¬ã¯ããªã®äŸ |
---|---|
ã³ãã³ãã©ã€ã³ã§å®è¡ | C:/Users/username/project/ |
VSCodeãPyCharmã§å®è¡ | ãããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ã㪠|
Jupyter Notebook ã§å®è¡ | Notebookãã¡ã€ã«ã®ãããã£ã¬ã¯ã㪠|
os.chdir() ã䜿ã£ãŠå€æŽ | os.chdir("/new/path/") ã§ä»»æã®ãã£ã¬ã¯ããªã«å€æŽå¯èœ |
ã«ã¬ã³ããã£ã¬ã¯ããªã®åäœãæ£ããç解ããŠããã°ãæå³ããªããã¡ã€ã«ã®èªã¿èŸŒã¿ãšã©ãŒ ã ã¹ã¯ãªããã®åäœã®äžäžèŽ ãé²ãããšãã§ããŸãã
3. ãããžã§ã¯ãã®ç®¡çã容æã«ãªã
Pythonãããžã§ã¯ãã§ã¯ã以äžã®ãããªãã©ã«ãæ§æãäžè¬çã§ãã
/home/user/project/
âââ main.py # å®è¡ã¹ã¯ãªãã
âââ data/
â âââ sample.csv
â âââ config.json
âââ logs/
â âââ app.log
âââ src/
âââ module1.py
âââ module2.py
ãã®ãããªãããžã§ã¯ãæ§æã§ã¯ãé©åãªã«ã¬ã³ããã£ã¬ã¯ããªã®èšå®ã«ããããã¡ã€ã«ã®èªã¿æžããã¹ã ãŒãºã«è¡ãããšãã§ããŸããç¹ã«ã倧èŠæš¡ãªãããžã§ã¯ãã§ã¯ãos.chdir()
ã䜿ã£ãŠãã£ã¬ã¯ããªãçµ±äžããããšããããããŸãã
ã«ã¬ã³ããã£ã¬ã¯ããªã®ç¢ºèªæ¹æ³
Pythonã§ã¯ãçŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããªãååŸããããã« os.getcwd()
ãŸã㯠Path.cwd()
ãäœ¿çš ã§ããŸãã
â
os
ã¢ãžã¥ãŒã«ã䜿çšããæ¹æ³
import os
current_directory = os.getcwd()
print("çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããª:", current_directory)
â
pathlib
ã¢ãžã¥ãŒã«ã䜿çšããæ¹æ³ïŒæšå¥šïŒ
from pathlib import Path
current_directory = Path.cwd()
print("çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããª:", current_directory)
pathlib
ã¢ãžã¥ãŒã«ã¯Python 3.4以éã§å°å
¥ããããªããžã§ã¯ãæåã®äœ¿ããããæ¹æ³ ãªã®ã§ãæ°ãããããžã§ã¯ãã§ã¯ãã¡ãã䜿ãã®ãæšå¥šãããŸãã
ãŸãšã
- ã«ã¬ã³ããã£ã¬ã¯ããªãšã¯ãPythonã¹ã¯ãªãããåºæºãšãããã©ã«ãã®ããšã
- çžå¯Ÿãã¹ãšçµ¶å¯Ÿãã¹ã®éããç解ããé©åã«äœ¿ãåããããšãéèŠã
- ã¹ã¯ãªããã®å®è¡ç°å¢ã«ãã£ãŠã«ã¬ã³ããã£ã¬ã¯ããªãå€ãããããæèããŠç®¡çããå¿ èŠãããã
os.getcwd()
ãŸãã¯Path.cwd()
ã䜿ãã°ãçŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããªã確èªã§ããã
3. ã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸæ¹æ³
Pythonã§ã«ã¬ã³ããã£ã¬ã¯ããªãååŸããæ¹æ³ã¯ããã€ããããŸããã䞻㫠os
ã¢ãžã¥ãŒã« ãš pathlib
ã¢ãžã¥ãŒã« ã®2ã€ãäžè¬çã«äœ¿çšãããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãããããã®æ¹æ³ã詳ãã解説ããéããæ¯èŒããŸãã
ã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸãšã¯ïŒ
ã«ã¬ã³ããã£ã¬ã¯ããªïŒçŸåšã®äœæ¥ãã£ã¬ã¯ããªïŒãååŸããããšã§ãPythonã¹ã¯ãªãããã©ã®ãã©ã«ããåºæºã«ãã¡ã€ã«ãæäœããŠããã®ãã確èªã§ããŸããããã¯ããã¡ã€ã«ã®èªã¿æžããã¹ã¯ãªããã®å®è¡ç°å¢ãæ£ãã管çããããã«äžå¯æ¬ ã§ãã
ããšãã°ã以äžã®ãããªPythonã¹ã¯ãªãããå®è¡ãããšãã«ãã©ã®ãã£ã¬ã¯ããªãã«ã¬ã³ããã£ã¬ã¯ããªãšããŠèªèãããŠããããç¥ãããšãéèŠã§ãã
file_path = "data/sample.txt"
with open(file_path, "r") as file:
content = file.read()
ãã®ã¹ã¯ãªãããã©ãã§å®è¡ãããã«ãã£ãŠãdata/sample.txt
ã®å Žæãå€ããå¯èœæ§ããããŸãããã®ãããã«ã¬ã³ããã£ã¬ã¯ããªãæ確ã«ææ¡ããããšã倧åã§ãã
1. os
ã¢ãžã¥ãŒã«ã䜿ã£ãã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸ
Pythonã®çµã¿èŸŒã¿ã¢ãžã¥ãŒã«ã§ãã os
ã䜿ããšãç°¡åã«ã«ã¬ã³ããã£ã¬ã¯ããªãååŸã§ããŸãã
â
os.getcwd()
ã䜿ã
import os
current_directory = os.getcwd()
print("çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããª:", current_directory)
â åºåäŸïŒWindowsïŒ
çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããª: C:\Users\username\project
â åºåäŸïŒMac/LinuxïŒ
çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããª: /home/user/project
ãã€ã³ã
os.getcwd()
㯠絶察ãã¹ïŒãã«ãã¹ïŒ ãè¿ããããã«ã¬ã³ããã£ã¬ã¯ããªã®ç¢ºèªãããããã- Pythonã®æšæºã©ã€ãã©ãª
os
ã«å«ãŸããŠããã®ã§ãè¿œå ã®ã€ã³ã¹ããŒã«ã¯äžèŠã
2. pathlib
ã¢ãžã¥ãŒã«ã䜿ã£ãã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸ
Python 3.4 以éã§ã¯ãpathlib
ã¢ãžã¥ãŒã«ã䜿ã£ãŠã«ã¬ã³ããã£ã¬ã¯ããªãååŸããããšãæšå¥šãããŠããŸããããã¯ããªããžã§ã¯ãæåçãªãã¡ã€ã«ãã¹ç®¡çãæäŸããããã§ãã
â
Path.cwd()
ã䜿ã
from pathlib import Path
current_directory = Path.cwd()
print("çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããª:", current_directory)
â åºåäŸ
çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããª: /home/user/project
ãã€ã³ã
Path.cwd()
ã¯os.getcwd()
ãšåãããã« ã«ã¬ã³ããã£ã¬ã¯ããªã®çµ¶å¯Ÿãã¹ãè¿ããPath
ãªããžã§ã¯ãã䜿ããšããã¹æäœãçŽæçã«æ±ãããããªãïŒPath
ã䜿ã£ããã¡ã€ã«æäœãšçµã¿åãããã®ã«äŸ¿å©ïŒãpathlib
㯠Python 3.4 以éã§å°å ¥ãããã¢ãžã¥ãŒã«ã®ãããPython 2 ã§ã¯äœ¿çšäžå¯ã
3. os.getcwd()
ãš Path.cwd()
ã®æ¯èŒ
os.getcwd()
ãš Path.cwd()
ã®ã©ã¡ãã䜿ãã¹ããè¿·ããããããŸãããããããã®ç¹åŸŽãæ¯èŒãããšã以äžã®ããã«ãªããŸãã
é ç® | os.getcwd() | Path.cwd() |
---|---|---|
æ»ãå€ã®å | æååïŒstrïŒ | Pathãªããžã§ã¯ã |
ã·ã³ãã«ã | ã·ã³ãã«ã§æ±ãããã | çŽæçãªãªããžã§ã¯ãæå |
æšå¥šç°å¢ | ã¬ã¬ã·ãŒã³ãŒããPython 2ç°å¢ | Python 3.4以éã®æ°ãããããžã§ã¯ã |
ãã¹æäœ | os.path.join() ãªã©ã®é¢æ°ãäœ¿çš | Path ãªããžã§ã¯ãã®ã¡ãœãããäœ¿çš |
æ¡åŒµæ§ | åŸæ¥ã®æ¹æ³ã§çµ±äžã§ãã | pathlib ã®æ©èœãšçµã¿åããããã |
â çµè«
- æ°èŠãããžã§ã¯ã â
Path.cwd()
ïŒæšå¥šïŒ - å€ãã³ãŒããšã®äºææ§ãå¿
èŠ â
os.getcwd()
4. ã«ã¬ã³ããã£ã¬ã¯ããªãååŸããéã®æ³šæç¹
- Jupyter Notebook ã§ã¯
__file__
å€æ°ã䜿ããªã
os.getcwd()
ãPath.cwd()
ã¯åé¡ãªãåäœãããã__file__
ã䜿ã£ãŠã«ã¬ã³ããã£ã¬ã¯ããªãååŸããããšãããšãšã©ãŒã«ãªãã
- ã³ãã³ãã©ã€ã³ã§ã®å®è¡ç°å¢ã«ãã£ãŠã«ã¬ã³ããã£ã¬ã¯ããªãç°ãªã
- Pythonã¹ã¯ãªãããã©ã®ç°å¢ã§å®è¡ãããã«ãã£ãŠã«ã¬ã³ããã£ã¬ã¯ããªãç°ãªãå Žåãããã
- äŸãã°ãVSCodeã®ã¿ãŒããã«ãšWindowsã®ã³ãã³ãããã³ããã§ã¯ã«ã¬ã³ããã£ã¬ã¯ããªãç°ãªãå¯èœæ§ãããã
os.chdir()
ã§å€æŽãããšos.getcwd()
ã®å€ãå€ãã
- ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽãããšã以éã®
os.getcwd()
ã®çµæãå€ãããããæå³ããªãåäœãé¿ããããã«æ³šæãå¿ èŠã
ãŸãšã
- Pythonã§ã«ã¬ã³ããã£ã¬ã¯ããªãååŸããæ¹æ³ã¯ã
os.getcwd()
ãšPath.cwd()
ã®2ã€ãããã - åŸæ¥ã®
os.getcwd()
ã¯ã·ã³ãã«ã§äœ¿ãããããäºææ§ãé«ãã Path.cwd()
ã¯pathlib
ã¢ãžã¥ãŒã«ã®äžéšã§ããªããžã§ã¯ãæåã®ãã¹æäœã«é©ããŠããã- æ°ãããããžã§ã¯ãã§ã¯
Path.cwd()
ãæšå¥šã - Jupyter Notebook ãç°ãªãå®è¡ç°å¢ã§ã®æåã®éãã«æ³šæãå¿ èŠã

4. ã«ã¬ã³ããã£ã¬ã¯ããªã®å€æŽæ¹æ³
Pythonã§ã¯ãã«ã¬ã³ããã£ã¬ã¯ããªïŒçŸåšã®äœæ¥ãã£ã¬ã¯ããªïŒãå€æŽããããšãå¯èœ ã§ããç¹å®ã®ãã©ã«ãå ã®ãã¡ã€ã«ãæäœãããå Žåããã¹ã¯ãªããã®å®è¡ç°å¢ãæŽããéã«åœ¹ç«ã¡ãŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽããæ¹æ³ãšããã®æ³šæç¹ã«ã€ããŠè§£èª¬ããŸãã
1. os.chdir()
ã䜿ã£ãã«ã¬ã³ããã£ã¬ã¯ããªã®å€æŽ
ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽããã«ã¯ãos
ã¢ãžã¥ãŒã«ã® os.chdir()
ã䜿çšããŸãã
â
os.chdir()
ã®åºæ¬çãªäœ¿ãæ¹
import os
# çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããªã衚瀺
print("å€æŽåã®ã«ã¬ã³ããã£ã¬ã¯ããª:", os.getcwd())
# ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽ
os.chdir("/path/to/new/directory") # å€æŽãããã£ã¬ã¯ããªãæå®
# å€æŽåŸã®ã«ã¬ã³ããã£ã¬ã¯ããªã衚瀺
print("å€æŽåŸã®ã«ã¬ã³ããã£ã¬ã¯ããª:", os.getcwd())
â å®è¡çµæïŒå€æŽååŸã®ç¢ºèªïŒ
å€æŽåã®ã«ã¬ã³ããã£ã¬ã¯ããª: /home/user/project
å€æŽåŸã®ã«ã¬ã³ããã£ã¬ã¯ããª: /home/user/project/new_folder
ãã€ã³ã
os.chdir("ãã¹")
ã䜿ããšãã¹ã¯ãªããã®å®è¡äžã®äœæ¥ãã£ã¬ã¯ããªãå€æŽã§ããã- å€æŽåŸã¯ããã¹ãŠã®çžå¯Ÿãã¹ã æ°ããã«ã¬ã³ããã£ã¬ã¯ããªãåºæº ã«åŠçãããã
2. 絶察ãã¹ãšçžå¯Ÿãã¹ã§ã® os.chdir()
os.chdir()
ã§ãã£ã¬ã¯ããªãå€æŽããéã¯ã絶察ãã¹ ãŸã㯠çžå¯Ÿãã¹ ã®ã©ã¡ãããæå®ã§ããŸãã
â 絶察ãã¹ã䜿ã
os.chdir("/home/user/project/new_folder") # Linux / Mac
os.chdir("C:\Users\username\project\new_folder") # Windows
- ãã«ãã¹ãæå®ãããããã©ã®ç°å¢ã§ã確å®ã«å€æŽã§ããã
- æšå¥šãããæ¹æ³ã
â çžå¯Ÿãã¹ã䜿ã
os.chdir("new_folder") # ã«ã¬ã³ããã£ã¬ã¯ããªå
ã® "new_folder" ã«ç§»å
os.chdir("../") # 1ã€äžã®ãã£ã¬ã¯ããªã«ç§»å
os.chdir("../../") # 2ã€äžã®ãã£ã¬ã¯ããªã«ç§»å
- çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããªãåºæº ã«å€æŽã§ãããããã¹ã¯ãªããã®ç§»æ€æ§ãé«ããªãã
- ãã ããã«ã¬ã³ããã£ã¬ã¯ããªãäžæ確ãªå Žåã¯æå³ããªãåäœãããå¯èœæ§ãããã
3. os.chdir()
ã®ãšã©ãŒãã³ããªã³ã°
æå®ãããã£ã¬ã¯ããªãååšããªãå ŽåãPython㯠FileNotFoundError
ãçºçãããŸãããããé²ãããã«ãäºåã«ãã£ã¬ã¯ããªã®ååšã確èªããåŠçãå
¥ãã ãšããã§ãããã
â ãšã©ãŒãã³ããªã³ã°ã®äŸ
import os
new_directory = "/path/to/nonexistent/directory"
# ãã£ã¬ã¯ããªãååšããã確èªããŠããå€æŽ
if os.path.exists(new_directory):
os.chdir(new_directory)
print("ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽããŸãã:", os.getcwd())
else:
print("ãšã©ãŒ: æå®ããããã£ã¬ã¯ããªãååšããŸããã")
â å®è¡çµæïŒãã£ã¬ã¯ããªãååšããªãå ŽåïŒ
ãšã©ãŒ: æå®ããããã£ã¬ã¯ããªãååšããŸããã
ãã€ã³ã
os.path.exists(ãã¹)
ã䜿ã£ãŠããã£ã¬ã¯ããªãååšãããã©ãããäºåã«ç¢ºèªããã- ååšããªããã£ã¬ã¯ããªãæå®ãããšã
FileNotFoundError
ãçºç ãããããäŸå€åŠçãçµã¿èŸŒããšãšã©ãŒãé²ããã
4. ã«ã¬ã³ããã£ã¬ã¯ããªãå ã«æ»ãæ¹æ³
ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽããåŸãå ã®ãã£ã¬ã¯ããªã«æ»ãããå ŽåããããŸãã以äžã®æ¹æ³ã§å ã®ãã£ã¬ã¯ããªãèšæ¶ããå€æŽåŸã«æ»ãããšãå¯èœã§ãã
â å ã®ã«ã¬ã³ããã£ã¬ã¯ããªãä¿åããŠãã
import os
# çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããªãä¿å
original_directory = os.getcwd()
# å¥ã®ãã£ã¬ã¯ããªã«å€æŽ
os.chdir("/path/to/new/directory")
print("å€æŽåŸã®ã«ã¬ã³ããã£ã¬ã¯ããª:", os.getcwd())
# å
ã®ãã£ã¬ã¯ããªã«æ»ã
os.chdir(original_directory)
print("å
ã®ã«ã¬ã³ããã£ã¬ã¯ããªã«æ»ããŸãã:", os.getcwd())
â å®è¡çµæ
å€æŽåŸã®ã«ã¬ã³ããã£ã¬ã¯ããª: /home/user/new_folder
å
ã®ã«ã¬ã³ããã£ã¬ã¯ããªã«æ»ããŸãã: /home/user/project
ãã€ã³ã
- å€æŽåã«
original_directory = os.getcwd()
ã§å ã®ãã£ã¬ã¯ããªãä¿åããŠããã°ãos.chdir(original_directory)
ã§ç°¡åã«æ»ããã - è€æ°ã®ã¹ã¯ãªãããçµã¿åãããŠåããå Žåã¯ãæ»ãåŠçãå¿ãããšæå³ããªããã¡ã€ã«æäœã®åå ã«ãªã ã®ã§æ³šæã
5. os.chdir()
ã®åœ±é¿ç¯å²ã«æ³šæ
os.chdir()
ã䜿ã£ãŠã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽãããšãPythonã¹ã¯ãªããå
šäœã®ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽããã ãããæå³ããªã圱é¿ãäžããå¯èœæ§ããããŸãã
â äŸïŒã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽããåŸã®åé¡
import os
# å¥ã®ãã£ã¬ã¯ããªã«å€æŽ
os.chdir("/path/to/new/directory")
# ä»ã®ã¹ã¯ãªãããã«ã¬ã³ããã£ã¬ã¯ããªã«äŸåããŠããå Žå
with open("config.json", "r") as file:
config = file.read() # æå³ããªããšã©ãŒãçºçããå¯èœæ§ãã
ãã®ã³ãŒãã¯ãã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽãããããããšããš config.json
ãããã¯ãã®ãã©ã«ããšã¯ç°ãªãå Žæãæ¢ããŠããŸãå¯èœæ§ããããŸãããã®ãããã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽããåŸã®åäœã«ã¯æ³šæãå¿
èŠã§ãã
ãŸãšã
os.chdir()
ã䜿ãããšã§ãã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽã§ããã- å€æŽæã«ã¯çµ¶å¯Ÿãã¹ã䜿ãã®ãå®å šã ããçžå¯Ÿãã¹ã掻çšã§ããã
- ãšã©ãŒãã³ããªã³ã°ãå ¥ããŠãååšããªããã£ã¬ã¯ããªã«å€æŽããªãããã«ããã
- å ã®ã«ã¬ã³ããã£ã¬ã¯ããªãä¿åããŠããããšã§ãç°¡åã«å ã«æ»ããã
- ã«ã¬ã³ããã£ã¬ã¯ããªã®å€æŽã¯ã¹ã¯ãªããå šäœã«åœ±é¿ãããããæå³ããªããšã©ãŒã«æ³šæãå¿ èŠã
5. ã«ã¬ã³ããã£ã¬ã¯ããªå ã®ãã¡ã€ã«äžèŠ§ãååŸããæ¹æ³
Pythonã§ã¯ãã«ã¬ã³ããã£ã¬ã¯ããªå ã®ãã¡ã€ã«ããã©ã«ãã®äžèŠ§ãååŸããããšãå¯èœã§ããããã«ãããç¹å®ã®çš®é¡ã®ãã¡ã€ã«ããªã¹ãã¢ãããããããã£ã¬ã¯ããªå ã®ãã¡ã€ã«ãäžæ¬åŠçãã ããšãã§ããŸãã
æ¬ã»ã¯ã·ã§ã³ã§ã¯ãos
ã¢ãžã¥ãŒã«ãš pathlib
ã¢ãžã¥ãŒã«ã䜿çšãããã¡ã€ã«äžèŠ§ã®ååŸæ¹æ³ã詳ãã解説ããŸãã
1. os.listdir()
ã䜿ã£ããã¡ã€ã«äžèŠ§ã®ååŸ
Pythonã® os
ã¢ãžã¥ãŒã«ã«ã¯ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ããã©ã«ãã®äžèŠ§ãååŸããããã® os.listdir()
é¢æ°ãçšæãããŠããŸãã
â
os.listdir()
ã®åºæ¬çãªäœ¿ãæ¹
import os
# ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ãšãã©ã«ããååŸ
files_and_folders = os.listdir()
print("ã«ã¬ã³ããã£ã¬ã¯ããªã®å
容:", files_and_folders)
â å®è¡çµæïŒäŸïŒ
ã«ã¬ã³ããã£ã¬ã¯ããªã®å
容: ['file1.txt', 'file2.csv', 'images', 'script.py']
ãã€ã³ã
os.listdir()
㯠ãã¡ã€ã«ã ãã§ãªãããã©ã«ããå«ããŠäžèŠ§ãååŸ ããã- ååŸãããªã¹ãã«ã¯æ¡åŒµåä»ãã®ãã¡ã€ã«åãå«ãŸãã ããããã¡ã€ã«ããã£ã«ã¿ãªã³ã°ããå¿ èŠãããã
2. os.listdir()
ã§ãã¡ã€ã«ã®ã¿ãååŸ
os.listdir()
ã䜿çšãããšããã£ã¬ã¯ããªå
ã®ãã¹ãŠã®ã¢ã€ãã ïŒãã¡ã€ã«ã»ãã©ã«ãã®äž¡æ¹ïŒãååŸããŸããããããç¹å®ã®ãã¡ã€ã«ã®ã¿ãååŸãããå Žåã¯ãos.path.isfile()
ãçµã¿åãããããšã§ããã¡ã€ã«ã®ã¿ãæœåºããããšãå¯èœ ã§ãã
â ãã¡ã€ã«ã®ã¿ååŸããæ¹æ³
import os
# ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ã®ã¿ãååŸ
files = [f for f in os.listdir() if os.path.isfile(f)]
print("ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«:", files)
â å®è¡çµæïŒäŸïŒ
ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«: ['file1.txt', 'file2.csv', 'script.py']
ãã€ã³ã
os.path.isfile(f)
ã䜿ã£ãŠããã©ã«ããé€å€ãããã¡ã€ã«ã®ã¿ãæœåº ããŠããã- ãªã¹ãå å è¡šèšã䜿ãããšã§ãç°¡æœã«èšè¿°ã§ããã
3. os.listdir()
ã§ç¹å®ã®æ¡åŒµåã®ãã¡ã€ã«ãååŸ
ãã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ãååŸããéã«ãç¹å®ã®æ¡åŒµåïŒäŸïŒ.txt
ã .csv
ïŒã®ãã¡ã€ã«ã®ã¿ããªã¹ãã¢ãããããå ŽåããããŸãããã®å Žåã¯ããªã¹ãå
å
è¡šèšãå©çšããŠæ¡åŒµåããã£ã«ã¿ãªã³ã°ã§ããŸãã
â
.txt
ãã¡ã€ã«ã®ã¿ååŸ
import os
# ã«ã¬ã³ããã£ã¬ã¯ããªå
ã® .txt ãã¡ã€ã«ã®ã¿ååŸ
txt_files = [f for f in os.listdir() if f.endswith('.txt')]
print(".txt ãã¡ã€ã«ã®äžèŠ§:", txt_files)
â å®è¡çµæïŒäŸïŒ
.txt ãã¡ã€ã«ã®äžèŠ§: ['file1.txt', 'notes.txt']
ãã€ã³ã
f.endswith('.txt')
ã䜿ã£ãŠ.txt
ã§çµãããã¡ã€ã«ã®ã¿ãæœåº ããŠããã'.csv'
ã'.log'
ãªã©ãä»ã®æ¡åŒµåã«ãå¿çšå¯èœã
4. pathlib
ã䜿ã£ããã¡ã€ã«äžèŠ§ã®ååŸ
Python 3.4 以éã§ã¯ãpathlib
ã¢ãžã¥ãŒã«ã䜿ã£ãŠãã¡ã€ã«äžèŠ§ãååŸã§ããŸããpathlib
ã¯ãªããžã§ã¯ãæåã®ãã¹æäœãå¯èœãªãããããçŽæçã«ãã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ãååŸã§ããŸãã
â
Path.iterdir()
ã䜿ã£ããã¡ã€ã«äžèŠ§ååŸ
from pathlib import Path
# ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ãšãã©ã«ããååŸ
files_and_folders = list(Path.cwd().iterdir())
print("ã«ã¬ã³ããã£ã¬ã¯ããªã®å
容:", files_and_folders)
â å®è¡çµæïŒäŸïŒ
ã«ã¬ã³ããã£ã¬ã¯ããªã®å
容: [PosixPath('file1.txt'), PosixPath('file2.csv'), PosixPath('images'), PosixPath('script.py')]
ãã€ã³ã
Path.cwd().iterdir()
ã䜿ããš ã«ã¬ã³ããã£ã¬ã¯ããªå ã®ã¢ã€ãã ãPath
ãªããžã§ã¯ããšããŠååŸ ã§ããã- ãªã¹ã圢åŒã«å€æãããšãæ±ãããããªãã
5. pathlib
ã§ãã¡ã€ã«ã®ã¿ãååŸ
Path.iterdir()
ã䜿ããšããã¡ã€ã«ã®ã¿ãååŸããããšãç°¡åã«ã§ããŸãã
â ãã¡ã€ã«ã®ã¿ååŸããæ¹æ³
from pathlib import Path
# ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ã®ã¿ååŸ
files = [f for f in Path.cwd().iterdir() if f.is_file()]
print("ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«:", files)
â å®è¡çµæïŒäŸïŒ
ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«: [PosixPath('file1.txt'), PosixPath('file2.csv'), PosixPath('script.py')]
ãã€ã³ã
f.is_file()
ã䜿ãããšã§ããã©ã«ããé€å€ãããã¡ã€ã«ã®ã¿ãååŸ ã§ãããPath
ãªããžã§ã¯ããæ±ãããšã§ããã¡ã€ã«ã®ãã¹ãç°¡åã«æäœã§ããã
6. os.listdir()
vs pathlib
ã®æ¯èŒ
ã¡ãœãã | ç¹åŸŽ | ããããã®çšé |
---|---|---|
os.listdir() | ã·ã³ãã«ã§éã | äºææ§ãéèŠããå Žå |
os.path.isfile() | ãã¡ã€ã«ã®ã¿ãååŸ | os.listdir() ãšçµã¿åãããŠäœ¿ã |
Path.iterdir() | ãªããžã§ã¯ãæåã§çŽæç | pathlib ã掻çšããå Žå |
â çµè«
- ã¬ã¬ã·ãŒã³ãŒã â
os.listdir()
ïŒã·ã³ãã«ã§éãïŒ - æ°ãããããžã§ã¯ã â
pathlib.Path().iterdir()
ïŒãªããžã§ã¯ãæåã§äœ¿ããããïŒ
ãŸãšã
os.listdir()
ã䜿ãã°ãã«ã¬ã³ããã£ã¬ã¯ããªå ã®ãã¡ã€ã«ããã©ã«ããç°¡åã«ååŸã§ãããos.path.isfile()
ã䜿ãã°ããã©ã«ããé€å€ããŠãã¡ã€ã«ã®ã¿ãååŸå¯èœãpathlib.Path().iterdir()
ã䜿ãã°ããªããžã§ã¯ãæåã®ãã¹æäœãã§ããããçŽæçã«ãã¡ã€ã«ãæ±ããã
次ã®ã»ã¯ã·ã§ã³ã§ã¯ããå®è¡äžã®ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãååŸããæ¹æ³ãã«ã€ããŠè©³ãã解説ããŸãã
6. å®è¡äžã®ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãååŸããæ¹æ³
Pythonã¹ã¯ãªãããã©ã®ãã£ã¬ã¯ããªã«é 眮ãããŠããã®ããååŸããããšã¯ãå€éšãã¡ã€ã«ã®èªã¿èŸŒã¿ ã ã¹ã¯ãªããã®é çœ®å Žæã«äŸåããåŠçãè¡ãéã«éèŠ ã§ããæ¬ã»ã¯ã·ã§ã³ã§ã¯ãã¹ã¯ãªããã®ãã£ã¬ã¯ããªãååŸããæ¹æ³ãšããã®æŽ»çšæ¹æ³ã解説ããŸãã
1. __file__
å€æ°ã䜿ã£ãã¹ã¯ãªããã®ãã£ã¬ã¯ããªååŸ
Pythonã§ã¯ã__file__
å€æ°ã䜿ãããšã§ãå®è¡äžã®ã¹ã¯ãªããã®ãã¡ã€ã«ãã¹ãååŸã§ããŸãããããã os.path.dirname()
ã䜿ãããšã§ãã¹ã¯ãªãããååšãããã£ã¬ã¯ããªãååŸã§ããŸãã
â
__file__
ã䜿ã£ãåºæ¬çãªååŸæ¹æ³
import os
# ã¹ã¯ãªããã®çµ¶å¯Ÿãã¹ãååŸ
script_path = os.path.abspath(__file__)
# ã¹ã¯ãªãããé
眮ãããŠãããã£ã¬ã¯ããªãååŸ
script_directory = os.path.dirname(script_path)
print("ã¹ã¯ãªããã®çµ¶å¯Ÿãã¹:", script_path)
print("ã¹ã¯ãªããã®é
眮ãã£ã¬ã¯ããª:", script_directory)
â å®è¡çµæïŒäŸïŒ
ã¹ã¯ãªããã®çµ¶å¯Ÿãã¹: /home/user/project/script.py
ã¹ã¯ãªããã®é
眮ãã£ã¬ã¯ããª: /home/user/project
ãã€ã³ã
__file__
å€æ°ã¯ãPythonã¹ã¯ãªããã®ãã¡ã€ã«ãã¹ãæ ŒçŽããç¹æ®å€æ°ãos.path.abspath(__file__)
ã䜿ãããšã§ãã¹ã¯ãªããã®çµ¶å¯Ÿãã¹ãååŸ ã§ãããos.path.dirname(ãã¹)
ã䜿ãããšã§ãã¹ã¯ãªããã®é 眮ãã£ã¬ã¯ããªãååŸ ã§ããã
â å®è¡ç°å¢ã«ãã泚æç¹
__file__
㯠Jupyter Notebook ã§ã¯å©çšã§ããªãã__file__
ã¯ã¹ã¯ãªãããã¡ã€ã«ãããå Žåã«ã®ã¿äœ¿çšã§ãããããJupyter Notebook äžã§ã¯ãšã©ãŒãçºçããã- Notebookå
ã§å®è¡ããå Žåã¯
os.getcwd()
ã䜿çšããã
2. pathlib
ã䜿ã£ãã¹ã¯ãªããã®ãã£ã¬ã¯ããªååŸ
Python 3.4 以éã§ã¯ãpathlib
ã䜿ã£ãŠãã¹ã¯ãªããã®ãã£ã¬ã¯ããªãååŸããããšãå¯èœã§ãã
â
pathlib
ã䜿ã£ãã¹ã¯ãªãããã£ã¬ã¯ããªã®ååŸ
from pathlib import Path
# ã¹ã¯ãªããã®é
眮ãã£ã¬ã¯ããªãååŸ
script_directory = Path(__file__).resolve().parent
print("ã¹ã¯ãªããã®é
眮ãã£ã¬ã¯ããª:", script_directory)
â å®è¡çµæïŒäŸïŒ
ã¹ã¯ãªããã®é
眮ãã£ã¬ã¯ããª: /home/user/project
ãã€ã³ã
Path(__file__).resolve()
ã¯ãã¹ã¯ãªããã®çµ¶å¯Ÿãã¹ãååŸããã.parent
ã䜿ãããšã§ãã¹ã¯ãªããã®èŠªãã£ã¬ã¯ããªïŒé 眮ãã©ã«ãïŒãååŸã§ããã- ãªããžã§ã¯ãæåã§çŽæçã«æžãããããæ°ãããããžã§ã¯ãã§ã¯
pathlib
ãæšå¥šã
â
os
ãš pathlib
ã®æ¯èŒ
ã¡ãœãã | ç¹åŸŽ | ããããã®çšé |
---|---|---|
os.path.dirname(os.path.abspath(__file__)) | åŸæ¥ã®æ¹æ³ | äºææ§ãéèŠããå Žå |
Path(__file__).resolve().parent | ãªããžã§ã¯ãæåã§çŽæç | Python 3.4 以éã®æ°ãããããžã§ã¯ã |
3. ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãã«ã¬ã³ããã£ã¬ã¯ããªã«èšå®ãã
ã¹ã¯ãªããã®é 眮ãã£ã¬ã¯ããªãã«ã¬ã³ããã£ã¬ã¯ããªã«èšå®ããããšã§ãã©ã®ç°å¢ã§ãã¹ã¯ãªãããäžè²«ããŠåäœããããã«ãã ããšãå¯èœã§ãã
â
os.chdir()
ã䜿ã£ãã«ã¬ã³ããã£ã¬ã¯ããªã®å€æŽ
import os
# ã¹ã¯ãªããã®é
眮ãã£ã¬ã¯ããªãååŸ
script_directory = os.path.dirname(os.path.abspath(__file__))
# ã«ã¬ã³ããã£ã¬ã¯ããªãã¹ã¯ãªããã®é
çœ®å Žæã«èšå®
os.chdir(script_directory)
print("ã«ã¬ã³ããã£ã¬ã¯ããªãã¹ã¯ãªããã®é
çœ®å Žæã«èšå®ããŸãã:", os.getcwd())
â å®è¡çµæïŒäŸïŒ
ã«ã¬ã³ããã£ã¬ã¯ããªãã¹ã¯ãªããã®é
çœ®å Žæã«èšå®ããŸãã: /home/user/project
ãã€ã³ã
os.chdir(ã¹ã¯ãªããã®ãã£ã¬ã¯ããª)
ã䜿ãããšã§ãã«ã¬ã³ããã£ã¬ã¯ããªãã¹ã¯ãªããã®é 眮ãã©ã«ãã«å€æŽã§ããã- çžå¯Ÿãã¹ã䜿çšããããã°ã©ã ããã©ãã§å®è¡ããŠãæ£ããåäœããããã«ãªãã
â
Jupyter Notebook ã§ã¯ __file__
ã䜿ããªãããã代ããã« os.getcwd()
ã䜿ã
import os
# Jupyter Notebook ã®å Žå㯠`__file__` ã䜿ããªãã®ã§ãã«ã¬ã³ããã£ã¬ã¯ããªãçŽæ¥ååŸ
script_directory = os.getcwd()
print("Jupyter Notebook äžã®ã«ã¬ã³ããã£ã¬ã¯ããª:", script_directory)
4. ã¹ã¯ãªããã®ãã£ã¬ã¯ããªã䜿çšããå®çšäŸ
ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãååŸããããšã§ãèšå®ãã¡ã€ã«ãããŒã¿ãã¡ã€ã«ãã¹ã¯ãªããã®å Žæãåºæºã«èªã¿èŸŒãããšãå¯èœ ã«ãªããŸãã
â ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãåºæºã«ãã¡ã€ã«ãéã
import os
# ã¹ã¯ãªããã®é
眮ãã£ã¬ã¯ããªãååŸ
script_directory = os.path.dirname(os.path.abspath(__file__))
# ããŒã¿ãã¡ã€ã«ã®ãã¹ãèšå®ïŒã¹ã¯ãªãããšåããã©ã«ãã«ãã "data.txt" ãéãïŒ
file_path = os.path.join(script_directory, "data.txt")
# ãã¡ã€ã«ãéã
with open(file_path, "r") as file:
content = file.read()
print("ãã¡ã€ã«ã®å
容:", content)
â å®è¡çµæïŒäŸïŒ
ãã¡ã€ã«ã®å
容: ããã¯ã¹ã¯ãªããã®ãã£ã¬ã¯ããªå
ã«ãããã¡ã€ã«ã®å
容ã§ãã
ãã€ã³ã
os.path.join(script_directory, "ãã¡ã€ã«å")
ã䜿ãããšã§ãã¹ã¯ãªããã®é çœ®å Žæãåºæºã«ãã¡ã€ã«ãéãããšãã§ããã- ã¹ã¯ãªããã®å®è¡å Žæã«é¢ä¿ãªããåžžã«åããã£ã¬ã¯ããªã®ãã¡ã€ã«ãåç §ã§ããããã移æ€æ§ãåäžããã
ãŸãšã
- ã¹ã¯ãªããã®é
眮ãã£ã¬ã¯ããªãååŸããã«ã¯ã
__file__
ã䜿ãã - Python 3.4 以éã§ã¯
pathlib.Path(__file__).resolve().parent
ã䜿ããšããçŽæçã os.chdir()
ã䜿ãããšã§ãã¹ã¯ãªããã®ãã£ã¬ã¯ããªãã«ã¬ã³ããã£ã¬ã¯ããªã«èšå®ã§ããã- Jupyter Notebook ã§ã¯
__file__
ã䜿ããªããããos.getcwd()
ã䜿çšããã - ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãåºæºã«ãã¡ã€ã«ãéãããšã§ã移æ€æ§ã®é«ãã³ãŒããæžããã
7. ãããã質åïŒFAQïŒ
Pythonã§ã«ã¬ã³ããã£ã¬ã¯ããªãååŸã»å€æŽã»æäœããæ¹æ³ã«ã€ããŠãèªè ãçåã«æãå¯èœæ§ãé«ãç¹ãFAQ圢åŒã§è§£èª¬ããŸãããããã®è³ªåãéããŠãããå®è·µçãªç解ãæ·±ããããšãã§ããŸãã
Q1: os.getcwd()
ãš os.path.abspath('.')
ã¯äœãéãã®ã§ããïŒ
â åç
os.getcwd()
㯠çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããªã絶察ãã¹ã§ååŸ ããŸããos.path.abspath('.')
ãçŸåšã®ãã£ã¬ã¯ããªãååŸããŸãããåŒæ°ãšããŠæå®ããããã¹ïŒãã®å Žåã¯"."
ïŒã®çµ¶å¯Ÿãã¹ãè¿ããŸãã
â å®éã®åºåäŸ
import os
print("os.getcwd():", os.getcwd())
print("os.path.abspath('.'):", os.path.abspath('.'))
â åºå
os.getcwd(): /home/user/project
os.path.abspath('.'): /home/user/project
- éåžžã®ã«ã¬ã³ããã£ã¬ã¯ããªååŸã«ã¯
os.getcwd()
ã䜿çšããã®ãæšå¥šãããŸãã
Q2: os.chdir()
ã䜿ã£ãŠã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽãããšãã¹ã¯ãªããå
šäœã«åœ±é¿ããããŸããïŒ
â åç
- ã¯ãã
os.chdir()
ã䜿ããšãPythonããã»ã¹å šäœã®ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽãããŸãã - ãã®ãããã¹ã¯ãªããã®éäžã§ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽãããšããã¡ã€ã«ãã¹ã®è§£æ±ºãæå³ããªãçµæã«ãªãå¯èœæ§ããããŸãã
â åé¡ã®äŸ
import os
print("å€æŽå:", os.getcwd())
os.chdir('/tmp') # ãã£ã¬ã¯ããªãå€æŽ
print("å€æŽåŸ:", os.getcwd())
# å€æŽåã®ãã£ã¬ã¯ããªã«ãã£ããã¡ã€ã«ãéãããšãããšãšã©ãŒã«ãªãå¯èœæ§ããã
with open("config.json", "r") as file:
content = file.read()
â 解決ç
import os
original_directory = os.getcwd() # å
ã®ãã£ã¬ã¯ããªãä¿å
os.chdir('/tmp') # äžæçã«å€æŽ
# å€æŽåŸã®åŠçãå®è¡
os.chdir(original_directory) # å
ã®ãã£ã¬ã¯ããªã«æ»ã
print("å
ã®ãã£ã¬ã¯ããªã«æ»ããŸãã:", os.getcwd())
- äžæçã«ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽããå Žåã¯ãå ã®ãã£ã¬ã¯ããªãä¿åããŠããã®ããã¹ããã©ã¯ãã£ã¹ã§ãã
Q3: pathlib
ãš os
ãã©ã¡ãã䜿ãã¹ãã§ããïŒ
â åç
é ç® | os ã¢ãžã¥ãŒã« | pathlib ã¢ãžã¥ãŒã« |
---|---|---|
å°å ¥ | å€ããã䜿ãããŠãã | Python 3.4以éã§å°å ¥ |
çŽæçãªæäœ | ããè€éïŒos.path.join() ãªã©ã䜿çšïŒ | ãªããžã§ã¯ãæåã§çŽæçïŒPath.cwd() , Path.joinpath() ãªã©ïŒ |
ãã¡ã€ã«ãã¹æäœ | æååããŒã¹ | Path ãªããžã§ã¯ã |
æ¡åŒµæ§ | äºææ§ãé«ã | ã¢ãã³ãªæžãæ¹ãå¯èœ |
â çµè«
- æ°ãããããžã§ã¯ãã§ã¯
pathlib
ã䜿çšããã®ãæšå¥šïŒãªããžã§ã¯ãæåã§æžããããïŒã - Python 2ãšã®äºææ§ãå¿
èŠãªã
os
ã¢ãžã¥ãŒã«ã䜿ãã
Q4: os.listdir()
ã§ãã¡ã€ã«äžèŠ§ãååŸãããšããã©ã«ããšãã¡ã€ã«ãæ··ãããŸãããã¡ã€ã«ã ããååŸã§ããŸããïŒ
â åç
os.path.isfile()
ã䜿ãããšã§ããã©ã«ããé€å€ããŠãã¡ã€ã«ã®ã¿ãååŸã§ããŸãã
â ãã¡ã€ã«ã®ã¿ååŸããæ¹æ³
import os
files = [f for f in os.listdir() if os.path.isfile(f)]
print("ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«:", files)
â
pathlib
ã䜿ãå Žå
from pathlib import Path
files = [f for f in Path.cwd().iterdir() if f.is_file()]
print("ã«ã¬ã³ããã£ã¬ã¯ããªå
ã®ãã¡ã€ã«:", files)
pathlib
ã䜿ããšãããçŽæçãªã³ãŒãã«ãªããããæ°ãããããžã§ã¯ãã§ã¯pathlib
ãæšå¥šã
Q5: __file__
ã䜿ããšãšã©ãŒãåºãŸãããªãã§ããïŒ
â åç
__file__
å€æ°ã¯ãPythonã¹ã¯ãªããããã¡ã€ã«ãšããŠå®è¡ãããå Žåã«ã®ã¿äœ¿çšå¯èœ ã§ãã- Jupyter Notebook ã§ã¯
__file__
å€æ°ãå®çŸ©ãããŠããªãããããšã©ãŒãçºçããŸãã
â Jupyter Notebook ã§ä»£æ¿ããæ¹æ³
import os
script_directory = os.getcwd() # ã«ã¬ã³ããã£ã¬ã¯ããªãååŸ
print("Jupyter Notebook ã®ãã£ã¬ã¯ããª:", script_directory)
- Jupyter Notebook ã§ã¯ ã«ã¬ã³ããã£ã¬ã¯ããªã
os.getcwd()
ã§ååŸãã ã®ããã¹ããã©ã¯ãã£ã¹ã
Q6: os.chdir()
ã䜿ããã«ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãåºæºã«ãã¡ã€ã«ãéãæ¹æ³ã¯ãããŸããïŒ
â åç
os.chdir()
ã䜿ããšã«ã¬ã³ããã£ã¬ã¯ããªå šäœãå€ãã£ãŠããŸããããã¹ã¯ãªããã®ãã£ã¬ã¯ããªãåºæºã«ãããã¡ã€ã«ãã¹ãæå®ããã®ãè¯ãæ¹æ³ã§ãã
â
os
ã䜿ãå Žå
import os
script_directory = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(script_directory, "data.txt")
with open(file_path, "r") as file:
content = file.read()
â
pathlib
ã䜿ãå ŽåïŒæšå¥šïŒ
from pathlib import Path
script_directory = Path(__file__).resolve().parent
file_path = script_directory / "data.txt"
with file_path.open("r") as file:
content = file.read()
- Python 3.4 以éãªã
pathlib
ã䜿ãæ¹ãçŽæçã§æ±ããããã
ãŸãšã
os.getcwd()
ãšos.path.abspath('.')
ã®éããç解ããããšã§ãããæè»ãªã«ã¬ã³ããã£ã¬ã¯ããªæäœãå¯èœãos.chdir()
ã§ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽãããšãã¹ã¯ãªããå šäœã«åœ±é¿ããããã泚æãå¿ èŠã- Python 3.4以éã®æ°ãããããžã§ã¯ãã§ã¯
pathlib
ã䜿ãã®ãæšå¥šãããã - Jupyter Notebook ã§ã¯
__file__
ã䜿ããªããããos.getcwd()
ã䜿çšããã - ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãåºæºã«ãã¡ã€ã«ãéãããšã§ã移æ€æ§ã®é«ãã³ãŒããæžããã
8. ãŸãšã
æ¬èšäºã§ã¯ãPython㧠ã«ã¬ã³ããã£ã¬ã¯ããªãååŸã»å€æŽã»äžèŠ§è¡šç€ºããæ¹æ³ ã«ã€ããŠè©³ãã解説ããŸãããPythonã«ããããã£ã¬ã¯ããªæäœã¯ããã¡ã€ã«ã®èªã¿æžããã¹ã¯ãªããã®ç®¡çã«æ¬ ãããªãç¥èã§ããããã§ãåã»ã¯ã·ã§ã³ã®ãã€ã³ããæ¯ãè¿ããŸãããã
1. ã«ã¬ã³ããã£ã¬ã¯ããªãšã¯ïŒ
- ã«ã¬ã³ããã£ã¬ã¯ããªïŒäœæ¥ãã£ã¬ã¯ããªïŒãšã¯ãPythonã¹ã¯ãªãããåºæºãšããŠãããã©ã«ãã®ããšã
- çžå¯Ÿãã¹ ã¯ã«ã¬ã³ããã£ã¬ã¯ããªãåºæºã«æå®ããããããé©åã«ç®¡çããªããšãã¡ã€ã«ãèŠã€ãããªããšã©ãŒãçºçããã
2. ã«ã¬ã³ããã£ã¬ã¯ããªã®ååŸæ¹æ³
â
os
ã¢ãžã¥ãŒã«ã䜿çš
import os
print(os.getcwd()) # çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããªãååŸ
â
pathlib
ã¢ãžã¥ãŒã«ã䜿çšïŒæšå¥šïŒ
from pathlib import Path
print(Path.cwd()) # çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããªãååŸ
os.getcwd()
ãš Path.cwd()
ã®éã
ã¡ãœãã | æ»ãå€ | ããããçšé |
---|---|---|
os.getcwd() | æåååïŒstrïŒ | ã¬ã¬ã·ãŒã³ãŒãã»Python 2äºæ |
Path.cwd() | Pathãªããžã§ã¯ã | æ°ãããããžã§ã¯ãã»çŽæçãªãã¹æäœ |
3. ã«ã¬ã³ããã£ã¬ã¯ããªã®å€æŽæ¹æ³
â
os.chdir()
ã䜿çš
import os
os.chdir("/new/directory") # ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽ
- ã«ã¬ã³ããã£ã¬ã¯ããªãå€æŽãããšã以éã®ãã¡ã€ã«æäœã®åºæºãå€ãããã泚æãå¿ èŠã
- å€æŽåã®ãã£ã¬ã¯ããªãä¿åããŠããããšã§ãå ã«æ»ãããšãå¯èœã
original_directory = os.getcwd()
os.chdir("/new/directory")
os.chdir(original_directory) # å
ã«æ»ã
4. ã«ã¬ã³ããã£ã¬ã¯ããªå ã®ãã¡ã€ã«äžèŠ§ãååŸ
â
os.listdir()
ã䜿çš
import os
print(os.listdir()) # ãã¡ã€ã«ãšãã©ã«ãã®äžèŠ§ãååŸ
â
pathlib
ã䜿çš
from pathlib import Path
print(list(Path.cwd().iterdir())) # ãã¡ã€ã«ãšãã©ã«ãã®äžèŠ§ãååŸ
- ç¹å®ã®æ¡åŒµåã®ã¿ååŸããæ¹æ³
txt_files = [f for f in Path.cwd().iterdir() if f.suffix == '.txt']
print(txt_files) # .txtãã¡ã€ã«ã®ã¿ãªã¹ãã¢ãã
5. å®è¡äžã®ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãååŸ
â
os
ã䜿çš
import os
print(os.path.dirname(os.path.abspath(__file__))) # ã¹ã¯ãªããã®é
眮ãã£ã¬ã¯ããªãååŸ
â
pathlib
ã䜿çšïŒæšå¥šïŒ
from pathlib import Path
print(Path(__file__).resolve().parent) # ã¹ã¯ãªããã®é
眮ãã£ã¬ã¯ããªãååŸ
- Jupyter Notebook ã§ã¯
__file__
ã䜿ããªãããã代ããã«os.getcwd()
ã䜿çšããã
6. ãããã質åïŒFAQïŒã®ãã€ã³ã
os.getcwd()
ãšos.path.abspath('.')
ã¯ã©ã¡ããã«ã¬ã³ããã£ã¬ã¯ããªãååŸããããos.getcwd()
ã䜿ãã®ãäžè¬çãos.chdir()
ã§ãã£ã¬ã¯ããªãå€æŽãããšã¹ã¯ãªããå šäœã«åœ±é¿ããããã泚æãå¿ èŠã- Python 3.4以éã§ã¯
pathlib
ã®äœ¿çšãæšå¥šïŒãªããžã§ã¯ãæåã§äœ¿ããããïŒã os.listdir()
ã§ååŸããäžèŠ§ãã ãã¡ã€ã«ã®ã¿ãååŸããã«ã¯os.path.isfile()
ãPath.is_file()
ã䜿çšã- ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãåºæºã«ãã¡ã€ã«ãéãããšã§ã移æ€æ§ã®é«ãã³ãŒããäœæå¯èœã
7. ãã®èšäºã掻ããå Žé¢
- ãã¡ã€ã«æäœã䌎ãPythonããã°ã©ã ïŒãã°ç®¡çãããŒã¿åæãã¹ã¯ã¬ã€ãã³ã°ãªã©ïŒã
- ã¹ã¯ãªããã®ç§»æ€æ§ãé«ããããã®ãã¹ããã©ã¯ãã£ã¹ã
- ãã£ã¬ã¯ããªå€æŽã«ãã圱é¿ãç解ããé©åã«ç®¡çããã¹ãã«ã®åäžã
8. æåŸã«
Pythonã§ã«ã¬ã³ããã£ã¬ã¯ããªãæäœããç¥èã¯ããã¡ã€ã«æäœãè¡ãããããããã°ã©ã ã§åœ¹ç«ã¡ãŸããç¹ã«ãos
ãš pathlib
ã®äœ¿ãåããç解ããããšã§ãããæè»ãªã³ãŒããæžãããšãã§ããŸãã
åèæç®
- Pythonå ¬åŒããã¥ã¡ã³ãïŒos ã¢ãžã¥ãŒã«ïŒ
- Pythonå ¬åŒããã¥ã¡ã³ãïŒpathlib ã¢ãžã¥ãŒã«ïŒ
æ¬èšäºãåèã«ããŠãPythonã®ãã£ã¬ã¯ããªæäœããã¹ã¿ãŒããå®è·µã«åœ¹ç«ãŠãŠãã ããïŒð