Score:0

วิธี 'ถูกต้อง' ทำให้ไฟล์นี้มีการจัดระเบียบไฟล์ใหม่พร้อมท์สคริปต์ python สำหรับผู้ใช้ ตรวจสอบความถูกต้องแล้วตรวจสอบอีกครั้ง

ธง vn

ฉันมีรุ่นที่แก้ไขแล้ว สคริปต์ที่ยอดเยี่ยมจริงๆ ที่เขียนขึ้นเมื่อครึ่งทศวรรษที่ผ่านมาเพื่อจัดระเบียบโฟลเดอร์ขนาดใหญ่จริงๆ ที่เต็มไปด้วยไฟล์แบบสุ่มใหม่ลงในไดเร็กทอรีที่เกี่ยวข้อง การแก้ไขของฉันไม่เกี่ยวข้องกับคำถาม ดังนั้นฉันจะใช้สคริปต์ต้นฉบับในตัวอย่างด้านล่าง

ฉันได้ตั้งค่าให้ผู้ใช้ป้อนข้อมูลแทนการฮาร์ดโค้ดตัวแปรลงในสคริปต์ (แสดงด้านล่างระหว่างไฟล์ การแก้ไขปัจจุบันของฉัน ความคิดเห็น) และดูเหมือนว่าจะทำงานได้ดีพอ แต่ฉันกังวลว่ามันอาจจะกินไดเร็กทอรีทั้งหมดโดยไม่ได้ตั้งใจหากฉันทำผิดพลาด

คำถาม:

  1. มีวิธีที่ฉันสามารถทำให้ผู้ใช้แจ้งสำหรับ reorg_dir ด้วยวิธีดังกล่าวทำให้ผู้ใช้เลื่อนดูไดเร็กทอรี เลือกไดเร็กทอรี จากนั้นตรวจสอบอีกครั้งเพื่อให้แน่ใจว่าผู้ใช้พอใจกับสิ่งที่จะเกิดขึ้นหรือไม่

  2. ในแนวทางเดียวกัน มีวิธีใดบ้างที่ระบบจะแจ้งให้ยกเว้นไฟล์บางประเภท มิฉะนั้นจะไม่รวมอะไรเลย

  3. ต่อแล้วไง remove_emptyfoldersมิฉะนั้นถือว่า จริง ?

(คำถามที่ 1 เป็นคำถามที่สำคัญที่สุด ฉันไม่คาดหวังให้คุณแก้ปัญหาทั้งหมดสำหรับคำถามที่เหลือหากคุณไม่รู้สึกทะเยอทะยาน!)

#!/usr/bin/env python3

นำเข้าระบบปฏิบัติการ
นำเข้ากระบวนการย่อย
นำเข้าปิด

# --------------------------------------------- -------
reorg_dir = "/path/to/directory_to_reorganize"
ไม่รวม = (".jpg") # ตัวอย่างเช่น
remove_emptyfolders = จริง
# --------------------------------------------- --------

# การแก้ไขปัจจุบันของฉัน ---------------------------------------
ในขณะที่ทรู:
    dirReorg= input("คุณต้องการจัดระเบียบไดเรกทอรีใดตามประเภทไฟล์")
    ถ้าไม่ใช่ os.path.exists (dirReorg):
        พิมพ์ ("ไม่มีเส้นทางนั้น ลองอีกครั้ง!")
        ดำเนินต่อ
    หยุดพัก
reorg_dir = os.path.abspath (ไดร์เรออร์ก)
# จบการแก้ไขปัจจุบันของฉัน -----------------------------------

สำหรับ root, dirs, ไฟล์ใน os.walk(reorg_dir):
    สำหรับชื่อในไฟล์:
        หัวเรื่อง = รูท +"/"+ชื่อ
        ถ้า name.startswith("."):
            นามสกุล = ".hidden_files"
        elif ไม่ใช่ "." ในชื่อ:
            นามสกุล = ".without_extension"
        อื่น:
            นามสกุล = ชื่อ [name.rfind ("."):]
        ถ้าไม่ขยายในไม่รวม:
            new_dir = reorg_dir+"/"+ส่วนขยาย[1:]
            ถ้าไม่ใช่ os.path.exists (new_dir):
                os.mkdir (ใหม่_dir)
            shutil.move(เรื่อง new_dir+"/"+ชื่อ)

ล้างข้อมูล def ():
    รายการไฟล์ = []
    สำหรับ root, dirs, ไฟล์ใน os.walk(reorg_dir):
        สำหรับชื่อในไฟล์:
            filelist.append(รูท+"/"+ชื่อ)
    ไดเร็กทอรี = [รายการ [0] สำหรับรายการใน os.walk(reorg_dir)]
    สำหรับ dr ในไดเร็กทอรี:
        ตรงกัน = [รายการสำหรับรายการในรายการไฟล์ถ้า dr ในรายการ]
        ถ้า len (ตรงกัน) == 0:
            พยายาม:
                shutil.rmtree (ดร)
            ยกเว้น FileNotFoundError:
                ผ่าน

ถ้า remove_emptyfolders == จริง:
    ทำความสะอาด()

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา