الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Python & Processes ؟؟

بدأه الاخير زمانه في 2 سبتمبر 2009 · 34 رد · 3,741 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

اريد ان اعلم هل توفر لغة بايثون امكانية التعامل مع الـ processes ،

يعني مثلا اظهار ال active processes والمصادر و الذاكرة التي تستخدمها كل بروسيس وايضا مثلا عمل خيار kill وما الى ذلك.

لم اجد في الكتب التي اطلعت عليها هذا الامر.

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#2

تستطيع التعامل مباشره مع ال Win32Api

#3

انت ممكن تستفيد من ال /proc

واطلاع سريع على os module

http://docs.python.org/library/os.html

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#4
ASDen كتب:
تستطيع التعامل مباشره مع ال Win32Api

اريد ذلك من خلال لينكس ،، بما انه استطيع التعامل مع ال WinAPI المفروض ايضا استطيع التعامل مع ال system call للينكس.

وشكرا اخي على درك.

ahmed_youssef كتب:
انت ممكن تستفيد من ال /proc

واطلاع سريع على os module

http://docs.python.org/library/os.html

شكرا اخي احمد على الرابط ،،

بدات اقرء بايثون مباشرة بالكتب وللأسف لم اطلع مسبقا على ال doc يبدو انه غني ،، شكرا على الرابط مرة اخرى.

خلال تجاولك اخي في النت اذا وجدت اي موضوع بهذا الخصوص ، processes , processes monitoring بأستخدام البايثون طبعا ارجو اخباري به.

شاكرا لك

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#5
اقتباس
شكرا اخي احمد على الرابط ،،

بدات اقرء بايثون مباشرة بالكتب وللأسف لم اطلع مسبقا على ال doc يبدو انه غني ،، شكرا على الرابط مرة اخرى.

خلال تجاولك اخي في النت اذا وجدت اي موضوع بهذا الخصوص ، processes , processes monitoring بأستخدام البايثون طبعا ارجو اخباري به.

شاكرا لك

انا راجعت سورس xfce4-taskmanager من شوية وبيستخدم /proc زى ماقلتلك :)

http://goodies.xfce.org/projects/applicati...ce4-taskmanager

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 3 سبتمبر 2009 في 19:51

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#6

شكرا اخي احمد ،، لكن للأسف البرنامج ليس مكتوبا بالبايثون.

ممكن تنفيذ الامر بالاستفادة من ال /proc او اخذ المعللومات من ps ،،

و لكني مبتدئ ويصعب علي تنفيذ الامر بمفردي ، لذا بحاجة الى شيئ عملي.

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#7

اتفضل

http://bitbucket.org/xmonader/pytasker/

تحويل مباشر من xfce-taskmanager-linux

اذا عايز معلومات عن Task معينة استخدم get_task_by_pid

لو عايز كل ال tasks الحالية فى ال /proc استخدم get_task_list

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#8

الله يبارك فيك اخي احمد و جزيت خيرا.

سأطلع على تفاصيل الكود و ربما سأعود لأسأل اذا لم افهم شيء في الكود و لم اجده في ال doc. او في الكتب :rolleyes:

شاكرا لك

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#9

السلام عليكــم ورحمـة الله وبركاتــه ،،

اخي الكريم ممكن توضح لي هذا الجزء من الكود

  def report(self):
		for attr, value in self.__dict__.items():
			print attr, " =>" , value

وايضا ما فائدة هذه الدوال

def get_system_status(sysstatus):
	raise NotImplementedError

def get_cpu_usage_from_proc(sysstatus):
	raise NotImplementedError

وايضا اتمنى ان تنظر اخي في مخرجات تنفيذ البرنامج (في المرفقات) ، الامر غير مفهوم

output.rar

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#10
اقتباس
__dict__ is the attribute dictionary

بخصوص __dict__ كان ممكن تعمل print ليه وهتعرف محتواه :)

>>> class X(object):
...	 def __init__(self):
...			 self.a=1
...			 self.b=2
>>> X().__dict__
{'a': 1, 'b': 2}

راجع ال Data Model لتفاصيل اكتر

http://docs.python.org/reference/datamodel.html

بخصوص ال NotImplementedError هو Error بيرث ال RuntimeError زى مانت شايف

class NotImplementedError(RuntimeError)
 |  Method or function hasn't been implemented yet.

--ال get_system_status implemented

http://bitbucket.org/xmonader/pytasker/cha...t/882d48179e60/

وهى بتجيب بعض الأجزاء من ملف /proc/meminfo و /proc/cpuinfo

الoutput منطقى ..انت بس شيل ال print لل exception الناتج من

yield get_task_by_pid(int(f))

فى iget_tasks

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 9 سبتمبر 2009 في 17:52

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#11

مشكور اخي احمد بارك الله فيك ،، انا لسه مبتدئ لذا تواجهني بعض المشاكل.

احاول الان اقرء في بعض الكتب + الاطلاع على ال docs .

اكرر شكري لك اخي الكريم

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#12

ولايهمك .. اى استفسار تحت امرك اذا كنت عارفه :)

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#13
اقتباس
ولايهمك .. اى استفسار تحت امرك اذا كنت عارفه regular_smile.gif

نفع الله بك اخي احمد و جزيت خيرا.

طبعا البرنامج اريد تطويره ليكون بواجهة رسومية.

اعجبتني محتويات كتاب Core Python Programming, Second Edition

وان شاء الله راح ابدي اقرء به

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#14

كتاب ممتاز جدا

فى ابديت سريع على pytasker تم اضافة meminfo, cpuinfo تقدر توصل لمحتويات الملفات بكل سهولة http://programming-fr34ks.net/smf/python/p.../msg584/#msg584

ومستنين ال GUI

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#15
اقتباس
فى ابديت سريع على pytasker تم اضافة meminfo, cpuinfo تقدر توصل لمحتويات الملفات بكل سهولة http://programming-fr34ks.net/smf/python/p.../msg584/#msg584

تم التحميل و قيد الاطلاع ان شاء الله.

جزيت خيرا.

اقتباس
ومستنين ال GUI

قول يارب :happy:

ان شاء الله ،،

كنت اتعلم في كتاب How to program وهو ايضا كتاب رائع ،، يشرح ال GUI بأستخدام Tkinter

لكن في كتاب Beginning Python: From Novice to Professional

وجدته يشرح مكتبة wxPython ،، حسيت انها اسهل ،، ايضا وجدت عنها كتاب wxPython in Action .

ان شاء الله سأستمر مع ال wxPython .

ما رأيك؟

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#16

هو المشروع بسيط فأى حاجة هتقضى الغرض

-- فكر تنتقل ل Qt

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#17
اقتباس
- فكر تنتقل ل Qt

سبق وان تعاملت مع ال Qt

/index.php?showtopic=176027

اما اذا تقصد PyQt فليس لدي معلومات :(

جهد كبير مبذول منك اخي احمد في وضع الدروس و الترجمة ،، الله يبارك فيك

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#18

Python/Qt اسهل بكتير من C++/Qt

جرب تمشى معاها من هنا

http://ojuba.org/wiki/docs/pyqt4

والأمثلة المرفقة معاها غنية جدا

واى جزئية فى الترجمة مش واضحة او فيها مشاكل ياريت تبلغنى

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#19
ahmed_youssef كتب:
Python/Qt اسهل بكتير من C++/Qt

جرب تمشى معاها من هنا

http://ojuba.org/wiki/docs/pyqt4

والأمثلة المرفقة معاها غنية جدا

واى جزئية فى الترجمة مش واضحة او فيها مشاكل ياريت تبلغنى

شكرا اخي ، قمت بطباعة الكتاب وجاري الاطلاع ان شاء الله.

لنا عودة اذا في شي غير واضح :happy:

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#20

هناك بعض الامور غير مفهومة في الاضافات على البرنامج الخاصة ب meminfo و cpuinfo

سأراجع ال docs لفهم بعض الامور

لكن فقط اردت اسألك

انت في كلاس SystemStatus

قرأت محتويات الذاكرة و المعالج بدالة get_system_status

ما فائدتها؟

لان انت رجعت قرات المعلومات في class MemInfo بالدلة reload

ونفس الشيء بالنسبة للمعاالج؟؟

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#21

الأول توضيح

get_system_status كانت بتجيب بعض المعلومات من /proc/meminfo و /proc/cpuinfo قبل مايتعمل MemInfo, CPUInfo classes فكانت الطريقة افتح الملف اسحب الجزئية المطلوبة وخزنها فى ال SystemStatus object

لأن فى الأول كنت عامل تحويل مباشر من سورس XFCE-TaskManager

ونفس الشئ بالنسبة للميثودز ولكن لسه مش حولت ال implementation للميثود "get_system_status" لتعتمد على استخدام MemInfo, CPUInfo

الخلاصة لإستخدام نفس الخدمات اللى بيقدمها xfce-taskmanager استخدم get_task_by_pid, get_task_list, iget_tasks, get_system_status

اذا عايز تستخدم pythonic way فى التعامل مع ملفات meminfo, cpuinfo لأى سبب استخدم MemInfo, CPUInfo

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#23

محاولة اولى ،، بصورة مستعجلة (اثناء وقت الفراغ في العمل :lol: )،،

استعملت wxpython

فقط اظهرت ال name , id

post-47438-1253036502_thumb.jpg

لكن لا اعرف ما سبب ظهور بعض الفراغات؟

اضفت هذا الكلاس الى البرنامج

class Processes(wx.Frame):
	def __init__(self, parent, id, title):
		wx.Frame.__init__(self, parent, id, title, size=(380, 230))

		hbox = wx.BoxSizer(wx.HORIZONTAL)
		panel = wx.Panel(self, -1)

		self.list = wx.ListCtrl(panel, -1, style=wx.LC_REPORT)
		self.list.InsertColumn(0, 'PName', width=140)
		self.list.InsertColumn(1, 'PID', width=130)

	for task in get_task_list():
		index = self.list.InsertStringItem(sys.maxint, task.name)
			self.list.SetStringItem(index, 1, task.pid)


		hbox.Add(self.list, 1, wx.EXPAND)
		panel.SetSizer(hbox)

		self.Centre()
		self.Show(True)
app = wx.App()
Processes(None, -1, 'Processes')
app.MainLoop()

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#24

عملت fix سريع.. استخدم name للحصول على اسم العملية واستخدم runningfile للحصول على اسم الملف اللى تم تشغيله مثلا totem مشغل ملف x

فى احيانا ملفات cmdline اللى بيتجاب منها الإسم -ودا كان شئ خاطئ تم تعديله- بيكون فاضى فالحل انك تعمل تشيك بإستخدام .strip على الtask.name واذا كان فاضى تشوف هتتعامل معاه ازاى يمكن تفكر تعديه

		for task in get_task_list():
			if task.name.strip():
				index = self.list.InsertStringItem(sys.maxint, task.name)
				self.list.SetStringItem(index, 1, task.pid)

بالمناسبة استخدم iget_tasks لأن ليها اداء افضل مع for

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 15 سبتمبر 2009 في 21:47

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#25

شكرا احمد ،، الان حلت المشكلة.

اقتباس
بالمناسبة استخدم iget_tasks لأن ليها اداء افضل مع for

بما انه ذكرت هذه الدالة ،، اريد ان اسألك عنها ،، لم افهما كثيرا صراحة

يعني انت داخل هذه الدالة تستدعي دالة get_task_by_pid داخل جملة for ،

معلومات البروسيس التي ستعود اين ستخزن؟

انت لم تستلمها بمتغير وايضا الدالة لا تحوي على ارجاع.

المشكلة لدي اني لا اعرف ما فائدة yield ،، لكني لم اسأل لأني الان اقرء و قلت اكيد راح اجدها في الكتب او في ال docs ،،

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

مواضيع مشابهة