วิธีที่ดีที่สุดในการแสดงไดเรกทอรี Windows "C:\meshes\as"
คืออะไร ฉันพยายามปรับเปลี่ยนสคริปต์ แต่มันไม่ทำงานเพราะฉันดูเหมือนจะไม่ได้รับไดเรกทอรีที่ถูกต้องฉันคิดว่าเป็นเพราะ'\'
ตัวละครที่หลบหนี?
วิธีที่ดีที่สุดในการแสดงไดเรกทอรี Windows "C:\meshes\as"
คืออะไร ฉันพยายามปรับเปลี่ยนสคริปต์ แต่มันไม่ทำงานเพราะฉันดูเหมือนจะไม่ได้รับไดเรกทอรีที่ถูกต้องฉันคิดว่าเป็นเพราะ'\'
ตัวละครที่หลบหนี?
คำตอบ:
คุณสามารถใช้งานได้ตลอดเวลา:
'C:/mydir'
ใช้ได้ทั้งใน linux และ windows ตำแหน่งอื่น ๆ คือ
'C:\\mydir'
หากคุณมีปัญหากับชื่อบางชื่อคุณสามารถลองใช้ตัวอักษรสตริงดิบได้:
r'C:\mydir'
อย่างไรก็ตามวิธีปฏิบัติที่ดีที่สุดคือการใช้os.path
ฟังก์ชั่นโมดูลที่เลือกการตั้งค่าที่ถูกต้องสำหรับระบบปฏิบัติการของคุณเสมอ:
os.path.join(mydir, myfile)
จาก python 3.4 คุณสามารถใช้โมดูลpathlib นี่คือสิ่งที่เท่าเทียมกับข้างต้น:
pathlib.Path(mydir, myfile)
หรือ
pathlib.Path(mydir) / myfile
ใช้os.path
โมดูล
os.path.join( "C:", "meshes", "as" )
หรือใช้สตริงดิบ
r"C:\meshes\as"
ฉันจะแนะนำไม่มีช่องว่างในเส้นทางหรือชื่อไฟล์ และคุณสามารถใช้แบ็กสแลชสองครั้งในสตริงของคุณ
"C:\\meshes\\as.jpg"
"C:\"
เป็นรายการแรกคืออะไร? ความยุ่งเหยิงของการใช้งานนั้นเป็นสิ่งที่join
ไม่สะอาดหรือเปล่า?
"C:\"
ชื่อไฟล์ตรงกลาง นอกจากนี้คุณสามารถใช้os.path.normpath
ก่อนหรือหลังการเข้าร่วมเพื่อให้แน่ใจว่าเส้นทางได้รับการพิมพ์อย่างดี
os.path.join( "C:\\", "meshes", "as" )
ใช่\
ในตัวอักษรของสตริงไพ ธ อนแสดงถึงจุดเริ่มต้นของลำดับการหลีกเลี่ยง ในเส้นทางของคุณคุณมีลำดับการหลบหนีสองตัวอักษรที่ถูกต้อง\a
ซึ่งจะถูกยุบเป็นอักขระหนึ่งตัวที่เป็นASCII Bell :
>>> '\a'
'\x07'
>>> len('\a')
1
>>> 'C:\meshes\as'
'C:\\meshes\x07s'
>>> print('C:\meshes\as')
C:\meshess
ลำดับการหลีกเลี่ยงทั่วไปอื่น ๆ ได้แก่\t
(แท็บ), \n
(ฟีดบรรทัด), (การขึ้นบรรทัดใหม่\r
):
>>> list('C:\test')
['C', ':', '\t', 'e', 's', 't']
>>> list('C:\nest')
['C', ':', '\n', 'e', 's', 't']
>>> list('C:\rest')
['C', ':', '\r', 'e', 's', 't']
อย่างที่คุณเห็นในแบ็กสแลชทั้งหมดและอักขระถัดไปในตัวอักษรถูกจัดกลุ่มเข้าด้วยกันเพื่อสร้างอักขระตัวเดียวในสตริงสุดท้าย รายการเต็มรูปแบบของงูใหญ่ลำดับหนีเป็นที่นี่
มีหลายวิธีที่จะจัดการกับสิ่งนั้น:
Python จะไม่ประมวลผล escape sequences ในสตริงตัวอักษรนำหน้าด้วยr
หรือR
:
>>> r'C:\meshes\as'
'C:\\meshes\\as'
>>> print(r'C:\meshes\as')
C:\meshes\as
Python บน Windows ควรรองรับเครื่องหมายสแลชเช่นกัน
คุณสามารถใช้os.path.join
...
>>> import os
>>> os.path.join('C:', os.sep, 'meshes', 'as')
'C:\\meshes\\as'
... หรือโมดูลที่ใหม่กว่าpathlib
>>> from pathlib import Path
>>> Path('C:', '/', 'meshes', 'as')
WindowsPath('C:/meshes/as')
ใน Windows คุณสามารถใช้/
ในพา ธ ของคุณเช่นเดียวกับ Linux หรือ macOS ในทุกสถานที่ตราบใดที่คุณใช้ PowerShellเป็นอินเตอร์เฟสบรรทัดคำสั่งของคุณ มันติดตั้งมาพร้อมกับ Windows และรองรับคำสั่ง Linuxมากมายเช่นls
คำสั่ง
หากคุณใช้พรอมต์คำสั่งของ Windows (อันที่ปรากฏขึ้นเมื่อคุณพิมพ์cmd
ในเมนูเริ่มของ Windows) คุณจะต้องระบุพา ธ ที่\
อยู่ข้างใน คุณสามารถใช้พา ธ/
ในสถานที่อื่น ๆ ทั้งหมด (โปรแกรมแก้ไขโค้ดโหมด Python และอื่น ๆ )
ในกรณีที่คุณต้องการวาง windows path จากแหล่งอื่น (เช่น File Explorer) - คุณสามารถทำได้ผ่านการinput()
โทรในคอนโซลหลาม:
>>> input()
D:\EP\stuff\1111\this_is_a_long_path\you_dont_want\to_type\or_edit_by_hand
'D:\\EP\\stuff\\1111\\this_is_a_long_path\\you_dont_want\\to_type\\or_edit_by_hand'
จากนั้นคัดลอกผลลัพธ์