ディレクトリ /sound-part/ 内にあるすべてのファイル名を取得し、
それらを all_file_list.txtに保存する。
'dirctory-get_files_names.py'(20241107 作成)
[pythonコード(Windows10)]
----
import os
# 対象ディレクトリと出力ファイル
directory_path = "sound-part"# 読み取り対象のディレクトリ
output_file = "all_file_list.txt" # 出力するテキストファイル
# ディレクトリ内のファイルを取得してテキストファイルに保存
with open(output_file, "w",encoding="utf-8") as file:
for filename in os.listdir(directory_path):
# ファイルパスを取得
file_path = os.path.join(directory_path, filename)
# ファイルのみを対象(ディレクトリは除外)
if os.path.isfile(file_path):
file.write(filename + "\n") # ファイル名を1行ごとに保存
print(f"ファイルリストが {output_file} に保存されました(BOMなしのUTF-8形式)")
----
■with open(output_file, "w",encoding="utf-8") as fileに関連して
macOSのデフォルトエンコーディングは utf-8 であるため、
encoding="utf-8"がなくても'BOMなしのUTF-8形式'で保存されるようです。
↓
with open(output_file, "w") as file:
----
■with open(output_file, "w",encoding="utf-8") as fileに関連して
macOSのデフォルトエンコーディングは utf-8 であるため、
encoding="utf-8"がなくても'BOMなしのUTF-8形式'で保存されるようです。
↓
with open(output_file, "w") as file:
■各OSでの動作
・Windows 10:
デフォルトエンコーディングは cp1252(Shift-JISやANSIと呼ばれることもあるWindowsのローカルエンコーディング)になります。
cp1252 はUTF-8とは異なるため、文字エンコーディングに互換性のない文字が含まれていると、文字化けが発生することがあります。
・macOS:
macOSのデフォルトエンコーディングは utf-8 であるため、BOMなしのUTF-8形式で保存されます。
■推奨事項
エンコーディングの違いを避け、常に同じ形式でファイルを扱うために、 encoding="utf-8" を明示的に指定するのがおすすめです。これにより、OSに関係なく、BOMなしのUTF-8形式でファイルが保存されます。
例
python
コードをコピーする
# BOMなしのUTF-8を明示的に指定
with open("example.txt", "w", encoding="utf-8") as file:
file.write("これはテストの文章です。")
これで、WindowsとmacOSのどちらでも一貫してBOMなしのUTF-8形式で保存できます。
example.txtの中身:
これはテストの文章です。
example.txtの中身:
これはテストの文章です。