[英]How to give windows directory path in os.listdir(path)?
當我試圖在 os.listdir() 中給出 windows 目錄路徑時,它給出了錯誤。 我的代碼片段:
with os.listdir('C:\Users\Hp\Desktop\video') as entries:
我知道 python 將 '\' 作為轉義序列,但我在 windows 上找不到任何替代方案。 給出的錯誤是:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX
我嘗試了以下解決方案,但它給了我一些其他錯誤:-
AttributeError: __enter__
我的代碼有什么問題嗎:
import os
import moviepy.editor as mp
#location = os.path.join("C:", "Users", "Hp", "Desktop", "video")
with os.listdir("C:\\Users\\Hp\\Desktop\\video") as entries:
for entry in entries:
if(".py" or ".png") not in entry:
video = mp.VideoFileClip("entry.name")
logo = (mp.ImageClip("logo.png")
.set_duration(video.duration)
.resize(height=50) # if you need to resize...
.margin(right=8, top=8, opacity=0) # (optional) logo-border padding
.set_pos(("right","top")))
final = mp.CompositeVideoClip([video, logo])
final.write_videofile('o' + "entry.name")
使用忽略反斜杠作為轉義字符的原始字符串
with os.listdir(r'C:\Users\Hp\Desktop\video') as entries:
或使用文字反斜杠(轉義的反斜杠)
with os.listdir('C:\\Users\\Hp\\Desktop\\video') as entries:
或者只使用正斜杠。 他們在 Windows 中到處工作。
with os.listdir('C:/Users/Hp/Desktop/video') as entries:
@Adam Smith 的回答是正確的。 但我想指出一個錯誤。 os.listdir
不返回上下文管理器(只是一個普通列表),因此將其與with
關鍵字一起使用是無用的。 正常調用function。
entries = os.listdir('C:\Users\Hp\Desktop\video')
你不會得到AttributeError: __enter__
錯誤。
with
關鍵字是一種在塊之前調用obj.__enter__()
並在其之后調用 obj obj.__exit__()
的自動方式。 如果 object(這里是從os.listdir
返回的列表)沒有這些方法,您將收到錯誤消息。
import os
import moviepy.editor as mp
path="C:\\Users\\Hp\\Desktop\\video"
entries=os.listdir(path)
for entry in entries:
if(".py" or ".png") not in entry:
video = mp.VideoFileClip("entry.name")
logo = (mp.ImageClip("logo.png")
.set_duration(video.duration)
.resize(height=50) # if you need to resize...
.margin(right=8, top=8, opacity=0) # (optional) logo-border padding
.set_pos(("right","top")))
final = mp.CompositeVideoClip([video, logo])
final.write_videofile('o' + "entry.name")
最好使用pathlib python 庫。 這樣的問題在里面處理得很好。
from pathlib import Path
p = Path('C:\Users\Hp\Desktop\video') # Use any format
for file in p.iterdir():
# Every 'file' is a 'Path' variable with full path
file.name # Returns full filename
file.suffix # Returns extension. e.g. '.jpg'
str(file) # Returns path as python string
請參閱此處了解更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.