9、Readme.md 生成器は、あなたのリポジトリの中で最も重要なファイルの一つと見なされていますが、同時に作成するのにかなりの時間がかかります。
import os
def get_input(prompt, default=""):
value = input(f"{prompt} [{default}]: ").strip()
return value if value else default
def generate_readme():
print("README.mdへようこそ!")
print("以下の質問に答えて、あなたのREADMEファイルを生成してください。デフォルト値を使用する場合は、直接Enterを押してください。")
# プロジェクト情報を取得
project_name = get_input("プロジェクト名")
description = get_input("プロジェクトの簡単な説明")
author = get_input("著者", os.getenv("USER", "あなたの名前"))
# さらなる詳細を取得
installation = get_input("インストール手順", "pip install your-package-name")
usage = get_input("使用例", "from your_package import main\n\nmain()")
contributing = get_input("貢献方法", "プルリクエストを歓迎します")
license_type = get_input("ライセンス", "MIT")
# README内容を生成
readme_content = f"""# {project_name}
{description}
## インストール
{installation}
## 使用
```python
{usage}
貢献#
{contributing}
ライセンス#
本プロジェクトは {license_type} ライセンスの下で提供されています。詳細は LICENSE ファイルをご覧ください。
著者#
{author}
"""
# README.mdファイルに書き込む
with open("README.md", "w", encoding="utf-8") as f:
f.write(readme_content)
print("README.mdが正常に生成されました!")
if name == "main":
generate_readme()
10、OrganizeIT 2.0 この自動化スクリプトは、数分であなたのフォルダーを整理するのに役立ちます。整理したいパスを指定するだけで、このスクリプトはファイル拡張子に基づいてすべてのファイルを自動的に異なるフォルダーに分けます。
import os
import hashlib
import shutil
from typing import Dict, Tuple
def get_file_hash(file_path: str) -> str:
"""ファイルのSHA-256ハッシュ値を計算します"""
with open(file_path, 'rb') as f:
return hashlib.sha256(f.read()).hexdigest()
def create_folder(path: str) -> None:
"""フォルダーを作成します。既に存在する場合は無視します"""
os.makedirs(path, exist_ok=True)
def move_file(src: str, dst: str) -> None:
"""ファイルを移動し、操作情報を印刷します"""
shutil.move(src, dst)
print(f"{os.path.basename(src)}を{os.path.dirname(dst)}に移動しました")
def organize_and_move_duplicates(folder_path: str) -> None:
"""フォルダーを整理し、重複ファイルを移動します"""
extension_folders: Dict[str, str] = {}
file_hashes: Dict[str, str] = {}
duplicates_folder = os.path.join(folder_path, 'Duplicates')
create_folder(duplicates_folder)
for filename in os.listdir(folder_path):
file_path = os.path.join(folder_path, filename)
if not os.path.isfile(file_path):
continue
_, extension = os.path.splitext(filename)
extension = extension.lower()
if extension not in extension_folders:
destination_folder = os.path.join(folder_path, extension[1:] or 'NoExtension')
create_folder(destination_folder)
extension_folders[extension] = destination_folder
file_hash = get_file_hash(file_path)
if file_hash in file_hashes:
move_file(file_path, os.path.join(duplicates_folder, filename))
else:
file_hashes[file_hash] = filename
move_file(file_path, extension_folders[extension])
def main() -> None:
folder_path = input("整理したいフォルダーのパスを入力してください: ").strip()
if not os.path.isdir(folder_path):
print("入力されたパスは有効なフォルダーではありません。")
return
organize_and_move_duplicates(folder_path)
if __name__ == "__main__":
main()