0
0

More than 1 year has passed since last update.

[python] ファイルの場所(パス)を得る方法

Last updated at Posted at 2022-09-17

はじめに

会社のシステムがかなり古く、独自で自動化システムを作ることを目指している。
会社のデータの多くはエクセルで管理され、ファイルの場所を指定することが絶対必要条件になる。

環境

python 3.7.8
window 10

Code

パスの指定方法

path = r'C:\Users\junsa\Desktop\python'
## 文字列の中の '\'を認識するので、rawの「 r 」を書くことで認識しなくする
file_name = 'labo.py'
print(path + fr'\{file_name}')
# 'C:\Users\junsa\Desktop\python\labo.py'
## 文字列の前に f を書くことで変数を入れることができる。

現在のファイルのパスを得る

import os 

print('getcwd:      ', os.getcwd())
print('__file__:    ', __file__)
#getcwd:       C:\Users\user\Desktop\python
#__file__:     labo.py

##パスに存在するファイル名をすべて得る
list = os.listdir(os.getcwd())
print(list)
# ['.git','labo.py', 'README.md', '__main__.py', '__pycache__']

パスのファイル名を得る(拡張子あり、なし)

import os 

filePath = r'C:\Users\junsa\Desktop\python\labo.py'

print(os.path.basename(filePath))
# labo.py
print(os.path.splitext(os.path.basename(filePath)))
# ('labo', '.py')

ファイルのフォルダ名を得る

import os 

filePath = r'C:\Users\junsa\Desktop\python\labo.py'
# ファイルのフォルダ名を得る
dir_name = os.path.dirname(filePath)
print(dirname)
# C:\Users\junsa\Desktop\python

# フォルダの下位フォルダ名を得る
sub_dir_name = os.path.dirname(dir_name)
print(sub_dir_name)
# C:\Users\junsa\Desktop

ファイルのフォルダパスとファイル名を得る方法

import os

filePath = r'C:\Users\junsa\Desktop\python\labo.py'

base_dir_pair = os.path.split(filePath)
print(base_dir_pair)
## ('C:\\Users\\junsa\\Desktop\\python', 'labo.py')

環境によって拡張子で場合分けする時もある。
私の会社の場合、エクセルのファイルの拡張子が 'xls', 'xlsx', 'xlsm'などがあり、
拡張子によってはライブラリーが利用できない時も多い。

os.path.splitextで拡張子で場合分け、os.path.dirnameでフォルダで場合分けをすると、予期せぬエラーを予防することができる。

python 公式Document

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0