كيف يمكنني الحصول على البيانات من stdin باستخدام os.system()

StackOverflow https://stackoverflow.com/questions/351456

سؤال

الطريقة الوحيدة الموثوقة التي وجدتها لاستخدام برنامج نصي لتنزيل النص من ويكيبيديا هي باستخدام cURL.حتى الآن الطريقة الوحيدة المتاحة لي للقيام بذلك هي الاتصال os.system().على الرغم من أن الإخراج يظهر بشكل صحيح في python Shell، لا يبدو لي أنه يعمل على إرجاع أي شيء آخر غير رمز الخروج (0).بالتناوب يمكن لشخص ما أن يوضح كيفية الاستخدام بشكل صحيح urllib.

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

المحلول

من الغوص في بايثون:

import urllib
sock = urllib.urlopen("http://en.wikipedia.org/wiki/Python_(programming_language)")
htmlsource = sock.read()
sock.close()
print htmlsource

سيؤدي ذلك إلى طباعة الكود المصدري لمقالة Python Wikipedia.أقترح عليك إلقاء نظرة على Dive into Python لمزيد من التفاصيل.

مثال باستخدام urllib2 من مرجع مكتبة بايثون:

import urllib2
f = urllib2.urlopen('http://www.python.org/')
print f.read(100)

يحرر:كما قد ترغب في إلقاء نظرة على wget.
تحرير 2:تمت إضافة مثال urllib2 بناءً على نصيحة S.Lott

نصائح أخرى

وردا على سؤال، بيثون على وحدة فرعي أو جانبي والذي يسمح لك بالتفاعل مع عمليات لدت HTTP: // docs.python.org/library/subprocess.html#subprocess.Popen

وانها تسمح لك لقراءة المعياري لعملية الاحتجاج، وحتى إرسال العناصر إلى ستدين.

ولكن كما قلت urllib هو خيار أفضل بكثير. إذا كنت بحث ستاكوفيرفلوو أنا متأكد من أنك سوف تجد ما لا يقل عن 10 أسئلة أخرى ذات الصلة ...

وباعتبارها alternetive إلى urllib، يمكنك استخدام يبكورل بيثون الارتباطات .

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