Cukup baru dalam hal ini, jadi mohon maaf jika ini bukan pertanyaan yang paling menuntut secara teknis.

Saya memiliki daftar besar nama file untuk dicari (sekitar 3k), cukup sederhana untuk menghasilkan solusi untuk mengambil string input, periksa daftar dan beri tahu saya apakah ada file di sana. Namun, tahap selanjutnya mengharuskan saya untuk membuka file di sistem lain yang peka huruf besar-kecil.

Pada dasarnya saya ingin memasukkan nama file saya (dalam hal apa pun), periksa daftar untuk nama file, konfirmasikan apakah file tersebut ada tetapi kembalikan nama file asli dalam kasus yang benar.

    For example
    search for newfile.txt
    check the list and return the actual case of NeWfILE.txt, perhaps
    newfile.txt found - actual file - NeWfILE.txt or similar

Saya bertanya-tanya apakah ada yang bisa menyelesaikan ini untuk saya. Saya telah memasukkan apa yang telah saya mainkan, bukan ide akhir hanya latihan saya.

    import JSON
    import glob, os
            
    file_name = input("Enter file name you are looking for:  ")
            
    path= (r"C:\Users\Ozzie\new_folder\file_list")
    os.chdir(path)
    list = glob.glob("*.txt")
            
    list_check = {item.lower() for item in list}
    if file_name.lower() in list_check:
        print(file_name +" Found")
    else:
        print(file_name + "Not Found")
1
Ozzie86uk 3 Juli 2020, 01:23

1 menjawab

Jawaban Terbaik

Saya pikir mengubah list_check menjadi dict harus menyelesaikan masalah Anda. Buat dict yang memetakan nama huruf kecil file ke nama aslinya.

Seharusnya terlihat seperti:

list_check = {item.lower(): item for item in list}
if file_name.lower() in list_check:
    print(file_name +" Found as" + list_check[file_name.lower()])
else:
    print(file_name + "Not Found")
0
Cameron Cairns 2 Juli 2020, 22:28