سؤال

سأبدأ بالقول إنني جديد جدا جدا في بيثون.

اعتدت أن يكون لديك ملف دفعة Windows / DOS من أجل إطلاق Mencoder مع مجموعة الأيمن من المعلمات، دون الحاجة إلى كتابةها في كل مرة.

حصلت الأمور على فوضوي عندما حاولت تحسين البرنامج النصي، وقررت أنها ستكون فرصة جيدة لمحاولة ترميز شيء في بيثون.

لقد جئت مع ذلك:

#!/usr/bin/python
import sys, os

#Path to mencoder
mencoder = "C:\Program Files\MPlayer-1.0rc2\mencoder.exe"
infile = "holidays.avi"
outfile = "holidays (part1).avi"
startTime = "00:48:00"
length = "00:00:15"

commande = "%s %s -ovc copy -oac copy -ss %s -endpos %s -o %s"
os.system(commande % (mencoder, infile, startTime, length, outfile))

#Pause
raw_input() 

ولكن هذا لا يعمل، يشكو Windows من أنه "C: Program" غير معترف به أمر.

لقد أحاول وضع بعض "" هنا وهناك، لكن ذلك لم يساعد.

هل كانت مفيدة؟

المحلول

Python لها نوعان من الاقتباسات، "و" وهي متساوية تماما. لدرجة أن أسهل طريقة للحصول على علامات الاقتباس في سلسلة هي القول "C: Program Files Mplayer-1.0rc2 Mencoder.exe" '.

باستخدام البادئة الخام (IE R '"c: program mplayer-1.0rc2 mencoder.exe"') هي فكرة جيدة، ولكن هذا ليس الخطأ هنا، حيث تتبع أي من الباكسات الخلفية خطابا هو رمز الهروب. لذلك لن تتغير السلسلة الأصلية على الإطلاق من خلال الحصول على ص في مقدمة ذلك.

نصائح أخرى

استخدم نوعين اقتباس بدلا من واحد إذا كنت تقوم بذلك على Windows.

"\\"

أنا جديد في بيثون لكنني أعرف متى أرى هذه المشكلة، لإصلاحها، يجب أن يكون الملف (قابل للتنفيذ أو الوسيطة) في علامات اقتباس. فقط اضف \" قبل وبعد أي ملف يحتوي على مساحة فيه للتمييز بين وسيطات سطر الأوامر. لذلك، ينطبق على متغير Outfile الخاص بك أيضا. يجب أن تبدو الكود مثل هذا ...

#!/usr/bin/python
import sys, os

#Path to mencoder
mencoder = "\"C:\Program Files\MPlayer-1.0rc2\mencoder.exe\""
infile = "holidays.avi"
outfile = "\"holidays (part1).avi\""
startTime = "00:48:00"
length = "00:00:15"

commande = "%s %s -ovc copy -oac copy -ss %s -endpos %s -o %s"
os.system(commande % (mencoder, infile, startTime, length, outfile))

#Pause
raw_input()

يمكنك حتى وضع mencoder.exe في دليل لا يحتوي على سحر الفضاء داخل اسمه (مقابل ملفات البرنامج).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top