Clineを使います。
Roo Codeの方が面白そうだけど、長期で考えるとClineに乗った方が良いかもと思ったので。
visual studio code / 設定
Extensionsでclineで検索します。
installします。
Use your own API key
[API Provider]
OpenAI Compatible
[Base URL]
https://api.perplexity.ai/
[OpenAI API Key]
*****************************************************
[Model]
sonar
[Done] (上に戻ります)
Auto-approve: None
ときどき欲しくなる機能を作ってもらう
前の記事と同じです。
create a python script that outputs a list of files and their sizes under a specified folder.
the folder is specified as an argument at run time.
please output file sizes in descending order in human-friendly units.
for directory, recursively get the total file size under the directory.
for directory, output a list of directories. for each directory, output the total file size under that directory.
sonar-reasoningを使って60秒以上戻って来ない場合は無限loopになっているはずです。
Cancelしましょう。reasoningだからかな。
output
file nameは変えてます。
file_sizes_cline.py
import os
import sys
def get_file_sizes(directory):
"""Lists all files in the directory and their sizes."""
files = os.listdir(directory)
for file in files:
path = os.path.join(directory, file)
if os.path.isfile(path):
size = os.path.getsize(path)
print(f"{file}: {convert_size(size)}")
def get_directory_sizes(directory):
"""Recursively calculates the total size of files under each subdirectory."""
directories = {}
for item in os.listdir(directory):
path = os.path.join(directory, item)
if os.path.isdir(path):
directories[item] = get_total_size(path)
return directories
def get_total_size(directory):
"""Recursively calculates the total size of files in a directory."""
total_size = 0
for entry in os.scandir(directory):
if entry.is_file():
total_size += entry.stat().st_size
elif entry.is_dir():
total_size += get_total_size(entry.path)
return total_size
def convert_size(size):
"""Converts size in bytes to human-friendly units."""
for unit in ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z']:
if abs(size) < 1024.0:
return f"{size:3.1f}{unit}B"
size /= 1024.0
return f"{size:.1f}YB"
def main():
if len(sys.argv) != 2:
print("Usage: python script.py <directory_path>")
return
directory = sys.argv[1]
if not os.path.exists(directory):
print(f"Directory '{directory}' does not exist.")
return
print("Files and their sizes:")
get_file_sizes(directory)
print("\nDirectories and their total sizes:")
directory_sizes = get_directory_sizes(directory)
for dir_name, size in sorted(directory_sizes.items(), key=lambda item: item[1], reverse=True):
print(f"{dir_name}: {convert_size(size)}")
if __name__ == "__main__":
main()
まとめ
今度はdirectoryは降順だけどfile sizeが降順でない。
sonar-reasoningでpythonを実行したら無限ループに入ってしまうscriptを生成する場合もありました。先週はそんなことなかったのに。
広告
IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』
さくらのレンタルサーバ

ムームードメイン

Oisix(おいしっくす)

らでぃっしゅぼーや

珈琲きゃろっと

エプソムソルト
