修改同樣一隻程式 ChatGPT VS GoogleGemini 程式修改

因為不想給小朋友和手機使用,所以買了一台帶螢幕的播放器。
這台老人播放器很低階
只支援 Dvix / mp4 / 360P 的mp4(mp4,avi,rmvb,mp3影音格式都「有限」的支援)
先不講,為了要解決unsupport format測試了很久才找到上面的參數。

音檔來源:線上發音課整個播放清單,使用yt-dlp整個下載回來,內含metadata等相關說明
因為,來源,有的是zoom錄影,有的是手機拍攝,所有解析度從1080P(手機)到480P(Zoom)都有
而且播放清單的順序,是從A~Z,但是拍攝的時間卻不是全都依序

另外,用播放器播放時,播放順序不是檔名,而是建立/修改日期
所以…
我寫了一隻python以檔名,排序,取得當時時間,依序修改每個檔案建立日期和修改日期。

但是…對岸來的,所以播放檔名如果是正體中文,是看不到的,所以修改這隻python在改檔名時,順便做了簡繁轉換。
利用ChatGPT和Google Gemini來做測試,對同一隻程式進行修改

import os
import datetime

def change_file_times(directory):
# 獲取目錄下的所有 mp4 文件,依檔案名稱排序
files = sorted([f for f in os.listdir(directory) if f.endswith(‘.mp4′)])

# 獲取當前時間
now = datetime.datetime.now()

# 遍歷每個文件,修改建立時間和修改時間
for index, file in enumerate(files):
file_path = os.path.join(directory, file)

# 設置新的建立時間和修改時間,每個文件加上一分鐘
new_time = now + datetime.timedelta(minutes=index + 1)
new_timestamp = new_time.timestamp()

# 修改建立時間和修改時間
os.utime(file_path, (new_timestamp, new_timestamp))

# 顯示檔名和修改的日期
print(f’檔名:{os.path.basename(file_path)},修改的日期:{new_time}’)

if __name__ == “__main__”:
# 設置需要處理的目錄,這裡使用當前執行腳本的目錄
directory = os.getcwd()
change_file_times(directory)

修改這隻程式,檔名從uft8正體中文,改名成簡體中文

ChatGPT寫出來的程式,可以執行,沒有任何的問題
要修改這隻程式,將檔名從 UTF-8 正體中文改為簡體中文,你可以使用 opencc 庫來實現這個功能。這裡我們會在程式中加入對檔名的轉換步驟。
首先,確保你已經安裝了 opencc 庫。你可以使用以下命令來安裝:
bash
pip install opencc-python-reimplemented
安裝完成後,我們來修改程式碼:

import os
import datetime
from opencc import OpenCC

# 初始化 OpenCC 轉換器,將繁體轉換為簡體
cc = OpenCC(‘t2s’)

def change_file_times(directory):
# 獲取目錄下的所有 mp4 文件,依檔案名稱排序
files = sorted([f for f in os.listdir(directory) if f.endswith(‘.mp4’)])

# 獲取當前時間
now = datetime.datetime.now()

# 遍歷每個文件,修改建立時間和修改時間
for index, file in enumerate(files):
file_path = os.path.join(directory, file)

# 將檔名從正體中文改成簡體中文
simplified_filename = cc.convert(os.path.splitext(file)[0])
output_filename = simplified_filename + ‘.mp4′
output_path = os.path.join(directory, output_filename)

# 設置新的建立時間和修改時間,每個文件加上一分鐘
new_time = now + datetime.timedelta(minutes=index + 1)
new_timestamp = new_time.timestamp()

# 修改建立時間和修改時間
os.utime(file_path, (new_timestamp, new_timestamp))

# 重命名檔案
os.rename(file_path, output_path)

# 顯示檔名和修改的日期
print(f’檔名:{os.path.basename(output_path)},修改的日期:{new_time}’)

if __name__ == “__main__”:
# 設置需要處理的目錄,這裡使用當前執行腳本的目錄
directory = os.getcwd()
change_file_times(directory)

但是Gemini 寫出來的,卻完全不能用
mport os import datetime def change_file_times(directory): # 獲取目錄下的所有 mp4 文件,依檔案名稱排序 files = sorted([f for f in os.listdir(directory) if f.endswith(‘.mp4′)]) # 獲取當前時間 now = datetime.datetime.now() # 遍歷每個文件,修改建立時間和修改時間 for index, file in enumerate(files): file_path = os.path.join(directory, file) # 設置新的建立時間和修改時間,每個文件加上一分鐘 new_time = now + datetime.timedelta(minutes=index + 1) new_timestamp = new_time.timestamp() # 修改建立時間和修改時間 os.utime(file_path, (new_timestamp, new_timestamp)) # 顯示檔名和修改的日期 print(f’檔名:{os.path.basename(file_path)},修改的日期:{new_time}’) if __name__ == “__main__”: # 設置需要處理的目錄,這裡使用當前執行腳本的目錄 directory = os.getcwd() change_file_times(directory)

修改這隻程式,檔名從uft8正體中文,改名成簡體中文
顯示草稿
Sure, here is the modified code that changes the filenames from Traditional Chinese to Simplified Chinese:

import os
import datetime

def change_file_names(directory):
# Get all mp4 files in the directory, sorted by filename
files = sorted([f for f in os.listdir(directory) if f.endswith(‘.mp4′)])

# Get the current time
now = datetime.datetime.now()

# Iterate through each file and modify the creation and modification time
for index, file in enumerate(files):
file_path = os.path.join(directory, file)

# Get the filename and extension
filename, extension = os.path.splitext(file)

# Convert the filename from Traditional Chinese to Simplified Chinese
simplified_filename = convert_to_simplified_chinese(filename)

# Create the new filename
new_filename = simplified_filename + extension

# Set the new creation and modification time, adding one minute for each file
new_time = now + datetime.timedelta(minutes=index + 1)
new_timestamp = new_time.timestamp()

# Rename the file
os.rename(file_path, os.path.join(directory, new_filename))

# Print the filename and modified date
print(f’Filename: {new_filename}, Modified Date: {new_time}’)

def convert_to_simplified_chinese(traditional_text):
# Use a library or online tool to convert Traditional Chinese to Simplified Chinese
simplified_text = traditional_text # Replace this line with the actual conversion code

return simplified_text

if __name__ == “__main__”:
# Set the directory to process, here we use the current directory
directory = os.getcwd()

change_file_names(directory)

convert Traditional Chinese to Simplified Chinese, you can use a library like hanzi2hant or an online tool like Baidu Translate [已移除無效網址].
Here is an example of how to use the hanzi2hant library:

import hanzi2hant

def convert_to_simplified_chinese(traditional_text):
simplified_text = hanzi2hant.convert(traditional_text)
return simplified_text

Once you have installed the hanzi2hant library, you can replace the # Replace this line with the actual conversion code comment in the convert_to_simplified_chinese function with the code above.

Please note that this code assumes that the filenames are valid UTF-8 encoded Traditional Chinese characters. If the filenames contain any invalid characters, you may need to handle them differently.

先不確定百度的方案能不能用,光是不能離線處理,這個功能就不算完全,於是我給Gemini一個新的修改方向
==>修改這隻程式,不要使用百度的方案,採用opencc-python-reimplemented來做正簡體轉換。

Python
import os
import datetime
import opencc


def change_file_names(directory):
    # Get all mp4 files in the directory, sorted by filename
    files = sorted([f for f in os.listdir(directory) if f.endswith('.mp4')])

    # Get the current time
    now = datetime.datetime.now()

    # Create an OpenCC converter for Traditional Chinese to Simplified Chinese conversion
    converter = opencc.OpenCC('t2s')

    # Iterate through each file and modify the creation and modification time
    for index, file in enumerate(files):
        file_path = os.path.join(directory, file)

        # Get the filename and extension
        filename, extension = os.path.splitext(file)

        # Convert the filename from Traditional Chinese to Simplified Chinese using OpenCC
        simplified_filename = converter.convert(filename)

        # Create the new filename
        new_filename = simplified_filename + extension

        # Set the new creation and modification time, adding one minute for each file
        new_time = now + datetime.timedelta(minutes=index + 1)
        new_timestamp = new_time.timestamp()

        # Rename the file
        os.rename(file_path, os.path.join(directory, new_filename))

        # Print the filename and modified date
        print(f'Filename: {new_filename}, Modified Date: {new_time}')


if __name__ == "__main__":
    # Set the directory to process, here we use the current directory
    directory = os.getcwd()

    change_file_names(directory)
Bash
pip install opencc-python-reimplemented
Bash
python filename.py

相關的說明完整,而且能正常使用,和ChatGPT產出的程式碼品質相同。

說在後面
其實我有想過,把小孩裝的APP全部移掉,相關影片放在內存,,上網封起來,應該就OK了,但是我們家的女王大人不同意,只好搞死我自己
小朋友還不會善用工具前,要給他足夠的限制,但是大人就會做好控制嗎?昨天女王大人快十一點回家,追劇追到早上五點被我趕去睡,好像也沒有比較好。

20240703 影片的格式,我原本是用ffmpeg去轉檔,結果轉檔出來的影片,播放器還是不支援。
我是使用格式工廠做轉檔,在快速參數硬換上,格式工廠,還是比使用ffmpeg來的簡易一些。

隨機文章

隨機美圖

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *