### 简单输出app名
import os
path = '/Applications'
f=os.path.basename(path) #获取文件名或目录名
print(f)
files = os.listdir(path)
print(files)
text_file = '/Users/hongli/Downloads/app_log.txt'
# write to text_file
with open(text_file, 'w') as f:
for item in files:
f.write(item)
f.write('\n')
2. 记录app名称、版本、日期
### 记录app名称、版本、日期
import os
import datetime
import plistlib
path = '/Applications'
files = os.listdir(path)
def get_app_version(app_path):
try:
info_plist_path = app_path + "/Contents/Info.plist"
with open(info_plist_path, "rb") as f:
info_plist = plistlib.load(f)
return info_plist.get("CFBundleShortVersionString")
except Exception as e:
print(f"Error: {e}")
return None
app_path = "/Applications/ApplicationName.app"
version = get_app_version(app_path)
if version:
print(f"The version of {app_path} is {version}")
text_file = '/Users/<name>/Downloads/app_log2.txt'
with open(text_file, 'w') as f:
for item in files:
file_path = os.path.join(path, item)
# Get file information
file_name = os.path.basename(file_path)
file_version = get_app_version(file_path)
# file_date = date.today()
file_date = os.path.getctime(file_path) # 1716466483.335777
formatted_date = datetime.datetime.fromtimestamp(file_date).strftime('%Y-%m-%d')
# Write to text file
f.write(f"File Name: {file_name}\n")
f.write(f"Version: {file_version}\n")
f.write(f"Date: {formatted_date}\n")
f.write('\n')
3. 导出csv
import os
import csv
with open('/Users/<name>/Downloads/app_log_2405.csv', 'w', newline='') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerow(['File Name', 'Version', 'Date'])
# Loop through the .app files and write the information to the CSV file
for item in files:
file_path = os.path.join(path, item)
# Get file information
file_name = os.path.basename(file_path)
file_version = get_app_version(file_path)
file_date = os.path.getatime(file_path) # 1716466483.335777
formatted_date = datetime.datetime.fromtimestamp(file_date).strftime('%Y-%m-%d')
# Write to CSV file
csvwriter.writerow([file_name, file_version, formatted_date])