general notes

いろいろなまとめ

Python Basics

内容

  • FizzBuzz
  • テキストの読み書き
  • ファイル操作
  • exeファイルの実行


# FizzBuzz

def fizzbuzz(x):
    if x % 15 == 0:
        return "fizzbuzz"
    elif x % 3 == 0:
        return "fizz"
    elif x % 5 == 0:
        return "buzz"
    else:
        return str(x)
        
a = [fizzbuzz(x) for x in range(1,41)]
print(a[:10])
print(a[10:20])
print(a[20:30])
print(a[30:40])

#['1', '2', 'fizz', '4', 'buzz', 'fizz', '7', '8', 'fizz', 'buzz']
#['11', 'fizz', '13', '14', 'fizzbuzz', '16', '17', 'fizz', '19', 'buzz']
#['fizz', '22', '23', 'fizz', 'buzz', '26', 'fizz', '28', '29', 'fizzbuzz']
#['31', '32', 'fizz', '34', 'buzz', 'fizz', '37', '38', 'fizz', 'buzz']


  • テキストの読み書き
# Write and Read

def write_test():
    with open("test.txt", mode = 'w') as f:
        f.write("a\n")
        for e in ["b", "cd"]:
            f.write(e + "\n")
        
        # f.writelines(["b", "cd"]) は改行されない
        
def read_test():
    with open("test.txt", mode = 'r') as f:
        bufs = [s.strip() for s in f.readlines()]
        for b in bufs:
            print(b)
            
write_test()
read_test() 

# a
# b
# cd


  • ファイル操作
# fileio
import os
import shutil

# フォルダ作成
print("フォルダ作成")
if os.path.isdir("sample"):
    print("sample is already made.")
else:
    os.mkdir("sample")    
print(os.listdir())
print()

# 空テキストの作成
print("空テキストの作成")
with open("sample/test.txt", mode = 'w') as f:
    pass
print(os.listdir("sample"))
print()

# ファイルコピー
print("ファイルコピー")
shutil.copy2("sample/test.txt", "sample/text2.txt") 
#copy2はメタデータ(ファイル作成日等)もコピー
print(os.listdir("sample"))
print()

# ファイル削除
print("ファイル削除")
os.remove("sample/test.txt")
print(os.listdir("sample"))
print()

# フォルダ削除
print("フォルダ削除")
shutil.rmtree("sample")
# 中身があっても削除
print(os.listdir())
print()

# フォルダ作成
# ['.ipynb_checkpoints', 'basics.ipynb', 'sample', 'test.txt']

# 空テキストの作成
# ['test.txt']

# ファイルコピー
# ['test.txt', 'text2.txt']

# ファイル削除
# ['text2.txt']

# フォルダ削除
# ['.ipynb_checkpoints', 'basics.ipynb', 'test.txt']


  • exeファイルの実行
# run exe
import subprocess

excel_path = r"C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE"
subprocess.Popen(excel_path) 
# エクセルが起動する
# Popenはアプリが起動したらすぐ制御を返す(プロセス終了を待たない)