0
私はpythonの新機能で、cドライブのフリースペースとソフトウェアパスの存在のCSVファイルに情報を与えるコードを作成しようとしています。以下Pythonを使用してデータを取得してcsvに挿入
私はCSVで取得していますが出力される
import time
import csv
import os
import socket
import ctypes
import platform
import sys
timestr = time.strftime("%Y.%m.%d")
filepath = r"D:\_library\_abcd\test"
filename = timestr + ".csv"
machinename = socket.gethostname()
print machinename
def Get_free_space_mb(direname):
if platform.system() == 'Windows':
free_bytes = ctypes.c_ulonglong(0)
ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(direname),None, None, ctypes.pointer(free_bytes))
print(free_bytes.value/1024/1024)
return free_bytes.value/1024/1024
else:
st = os.statvfs(dirname)
return st.f_bavail * st.f_frsize/1024/1024
Cdrivespace = Get_free_space_mb("C:\\")
def software1():
if os.path.isdir("C:\Program Files\software1"):
return "software1 Exist"
else:
return "software1 not Exist"
software_1 = software1()
def software2():
if os.path.isdir("C:\Program Files\software2"):
return "software2 Exist"
else:
return "Nuke9 not Exist"
software_2 = software2()
def software3():
if os.path.isdir("C:\Program Files\software3"):
return "software3 Exist"
else:
return "software3 not Exist"
software_3 = software3()
with open(os.path.join(filepath,filename), 'ab+') as file_:
writer = csv.writer(file_,delimiter=",")
data = [machinename,Cdrivespace,software1,software2,software3]
writer.writerows([data])
..私はしようとしているコードです: (SUPT5)(10150)(0x02AF47B0での関数ソフトウェア1)(0x02AF4A70での関数software2()関数0x02AF4AB0でsoftware3)出力が期待されるもの
である: (SUPT5)(10150 MB)(ソフトウェア1が存在する)(software2が存在する)(software3存在しない)
私はcsvファイルにCdrivespaceの値を書き込んだ後にmbを書きたいと思っています。 私はコードをより簡単に変更できますか?
提案 - 3つの別々の関数sw1、sw2、sw3を書くのではなく、1つに結合して引数を渡す –