'20/02/29/更新:コードの可読性を若干良くしました。
os.path.isfile()を使用すれば楽である。指定ファイルが存在すれば真「True」、存在しなければ偽「False」を返す。その結果を、if文で、if True: や if not True: で分岐すれば良い。ちなみに、ファイルでなくてフォルダの存在有無を確認したい場合はos.path.isdir()を使う。
▼本プログラム
カレントディレクトリに指定ファイル「abc.csv」が存在しない場合は、そのファイルを作成する。逆に、そのファイルが存在する場合は文章を追記する仕様です。
import os
import datetime
now = datetime.datetime.now()
now = now.strftime("%y%m%d")
def writeTxt(file_name, myCheck):
if not myCheck:
with open(file_name, "w") as f:
f.write(file_name + " not found" + '\n')
f.write(file_name + " created" + '\n')
else:
with open(file_name, "a") as f:
buf = [str(file_name) + ' found', now, '\n']
buf = '\n'.join(buf)
f.write(buf)
def main():
myCheck = os.path.isfile(file_path)
print(str(myCheck), type(myCheck))
writeTxt(file_name, myCheck)
if __name__ == '__main__':
current_path = os.getcwd()
file_name = 'abc.csv'
file_path = os.path.join(current_path, file_name)
print(file_path)
main()
■本プログラムの実行例を以降に示す
1. 上記コードを「check_file.py」などとファイル名で保存する(下図)
2. そして、python check_file.py としてプログラムを実行すると「False」が表示される(下図)。これは「abc.csv」ファイルがなかったためである。そして、「abc.csv」ファイルが作成される。
3. 更に、同様にプログラムを実行すると「True」が表示される(下図)。これはすでに「abc.csv」ファイルが存在しているためである。そして、ファイルの中身を見ると、文章が追記されていることがわかる(4行目以降)
以上
<広告>
リンク