【macOS】python导出所有Application文件夹下app的信息

1. 简单输出app名

### 简单输出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])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值