هشام رزق الله
الأعضاء-
المساهمات
1442 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
31
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو هشام رزق الله
-
هنالك العديد من الفروقات بين هذين النظامين لكن سأقوم بذكر أهم الفروقات، أولا يتميز نظام ext3 بأنه نظام ملفات مزود بقيد حوادث أي أنه يقوم بتسجيل جميع التغييرات في مساحة معينة قبل كتابتها فعليا في نظام الملفات الرئيسي لذلك إذا إنهار النظام فإن فرصة عطب نظام الملفات قليلة بسبب هذه الميزة. ظهر نظام ext3 سنة 2001 وأقصى حجم ملف يمكن وضعه في هذا النظام هو ما بين 16 غيغابايت إلى 2 تيرابايت وأما أقصى حجم للقسم فما بين 2 تيرابايت إلى 32 تيرابايت. أما نظام ext4 فقد ظهر سنة 2008 ويتميز بأنه يستطيع التعامل من أحجام أكبر من الملفات فأقصى حجم ملف يمكن وضعه في هذا النظام فيكون ما بين 16 غيغابايت إلى 16 تيرابايت أما أقصى حجم للقسم 1 إكسبيبايت (1 إكسبيبايت = 1024 بيتابايت و 1 بيتابايت = 1024 تيرابايت). ولقد تم إضافة ميزة إيقاف "قيد الحوادث" إذا لم يرغب المستخدم بهذه الميزة التي ظهرت في الإصدار الثالث. للمزيد يمكنك قراءة هذا المقال حول الفروقات.
-
نظام الملفات (File System) هو النظام الذي يتعامل مع الملفات من حيث تخزينها وتنظيمها وإدارتها، ومن دون نظام الملفات ستكون البيانات مخزنة في مساحة تخزين كبيرة لا أحد يعلم من أين تبدأ وأين تنتهي، لذلك يقوم نظام الملفات بفصل هذه البيانات إلى أجزاء منفصلة ويقوم بإعطاء كل جزء من هذه الأجزاء اسم ليسهل تعريفها، وكل واحد من هذه الأجزاء سيكون أحد ملفات. توجد العديد من أنظمة الملفات ففي نظام ويندوز تجد Fat32 و NTFS … أما في نظام تشغيل لينكس تجد أنظمة ملفات أكثر بحكم أن النظام مفتوح المصدر ومن أشهر هذه الأنظمة تجد ext3 و ext4 و btrfs وغيرها … للمزيد من المعلومات : ويكيبيديا
-
نعم يمكنك فعل ذلك عن طريق استخدام مكتبة PeachPy فهذه المكتبة توفر العديد من المميزات والتي من بينها استعمال نفس الصياغة لجميع الأنظمة (لينكس، ويندوز، ماك …) ودعمه لمعماريات 64 بت بالإضافة إلى توافقه مع بايثون 2 وبايثون 3 وCPython وpyPy. وبالإضافة إلى ذلك هنالك برنامج مع مجموه PeachPy يقوم بإنشاء شيفرة برمجية من الشيفرة البرمجية التي كتبتها. أنصحك بتعلم لغة الأسمبلي أولا ثم الإنتقال إلى هذه المكتبة لأن هذه المكتبة تتطلب معرفة كبيرة بلغة أسمبلي. الموقع الرسمي للمشروع على GitHub
-
نعم يمكنك فعل ذلك بثلاث أسطر فقط، السطر الأول سيطلب من المستخدم إعطائه تاريخ معين على الشكل التالي DD/MM/YYYY، هذه هي الشيفرة البرمجية للسطر: read INPUTثم سنقوم بمعالجة المدخلات لنحولها إلى اليوم الذي يقابل ذلك التاريخ على الشكل التالي: INPUT=`echo $INPUT | awk -F '/' '{t=$1;$1=$2;$2=t;gsub(" ", "/");print;}'`ثم سنعرض النتيجة على الشاشة: date -d $INPUT +%Aيمكنك وضع جميع هذه الأسطر في سكربت واحد كالتالي: #!/bin/bash read INPUT INPUT=`echo $INPUT | awk -F '/' '{t=$1;$1=$2;$2=t;gsub(" ", "/");print;}'` date -d $INPUT +%Aثم قم بحفظ الملف بأي اسم تريده وبامتداد .sh وسيعمل مع السكربت دون أية مشاكل. للمزيد حول الأمر awk يمكنك زيارة الموقع التالي الذي يقدم دروس حول هذا الأمر.
-
لا ينصح بتثبيت الحزم على نظام دبيان المستقر من مصادر غير المستودعات الرسمية لأنه قد يسبب في بعض الأحيان مشاكل كثيرة. لكن إذا أردت يمكنك بناءها من المصدر أو يمكنك استخدام backports لأنها تحصل على تحديثات رسمية من دبيان. وإذا أردت حزم أحدث يمكنك استخدام Debian Testing فهي تجمع بين الاستقرار (أقل استقرارا من الإصدار المستقر)والحداثة. وإذا لم ترضى يمكنك استخدام Debian Unstable فهي مستقرة نوعا ما وبها حزم أحدث من إصدار Debian Testing . وفي النهاية يمكنك استخدام Debian Experimental وهذا النسخة غيرة مستقرة لكنها تحتوي على آخر الإصدارات من الحزم.
-
يمكنك استخدام الأمر chmod فهذا الأمر يقوم بتعديل صلاحيات التعديل والقراءة للملفات عن طريق الأمر التالي: chmod 777 test.txtحيث أن test.txt هو الملف الذي تريد تغيير صلاحياته وأما 777 هي الصلاحيات التي تريد منها للملف ومن أهم هذه الصلاحيات: 777 إمكانية القراءة والتعديل والتنفيذ للجميع بدون استثناء. 755 إمكانية القراءة والتنفيذ للمستخدم، لكن لا يمكن تعديله إلا عن طريق المالك. 600 المالك فقط يمكنه قراءة وتعديل الملف، بقية المستخدمين ليس لديهم أية صلاحيات. للمزيد من المعلومات حول صلاحيات لينكس أنصحك بقراءة هذا الموضوع
-
نعم هنالك العديد من المحررات النصوص في الطرفية والتي من اشهرها المحرر vi. هذا المحرر صعب ومعقد بالنسبة للمبتدئين لكنه يوفر العديد من المميزات لمن يحترفه لذلك تجد الكثير من المبرمجين يستخدمونه. من الأوامر الأساسية: فتح ملف باستخدام vi : vi filenameللخروج من المحرر مع حفظ التغييرات: ZZ أو :wq للخروج من المحرر بدون حفظ التغييرات: :q! للدخول إلى وضع الأوامر في vi قم بالضغط على زر Esc للمزيد من الأوامر أنصحك بزيارة المصدر فستجد جميع الأوامر للتعامل مع المحرر vi. المصدر
-
يمكنك فعل أي شيء عن طريق الطرفية في نظام لينكس، فيمكنك استخراج الكلمات عن طريق الأمر grep كالمثال التالي: $ echo four fives sixsix | grep -Eow '\w{4}|\w{6}' four sixsix حيث أن: -w تخبر grep بأن يستخرج الكلمات الكاملة فقط. -o تخبر grep بأن يطبع فقط المتطابق وليس كامل السياق. -E تخبر grep باستخدام التعابير العادية الموسعة(extended regular expressions) لتقليل استخدام الخطوط المائلة. أما بالنسبة لـ \w{4} فهي تخبره بطول الكلمة التي تريدها. المصدر
-
هنالك العديد من المجالات فيمكنك بعد تعلم الأساسيات تعلم البرمجة بإستخدام GTK و Qt لبرمجة تطبيقات سطح المكتب أو يمكنك برمجة الألعاب بإستخدام pygame و panda3d وإذا كنت تُفضل برمجة تطبيقات الويب فأنصحك بتعلم أساسيات الـ HTML و CSS و الجافاسكربت ثم الإنتقال إلى أحد أطر لغة البايثون مثل django أو pyramid أو غيرها من الأطر الصغيرة والمتوسطة مثل bottle و CherryPy و Flask وغيرها. وأنصحك بعد تعلم إحدى هذه المجالات أن تقوم بالمشاركة في مشاريع من خلال مواقع مثل github لتحسين مستواك في اللغة وللتعرف على طرق برمجة جديدة.
-
كما قلت، هنالك العديد من الطرق لاستدعاء دالة لغة سي في شيفرة برمجية بلغة البايثون لكن لو أردت إنشاء مكتبة كائن مشتركة (مثل DLL في ويندوز) فأنصحك في هذه الحالة أن تقوم باستخدام مكتبة ctypes أنصح باستخدام هذه المكتبة لمستخدمي نظام ويندوز على وجه الخصوص لما تقدمه من تسهيلات للتعامل مع ملفات dll. أما إذا أردت كتابة برنامج منفصل أو للتعامل مع الملفات فأنصحك باستخدام دوال subprocess المصدر
-
وهو اختصار لـ Stream Editor وهذا الأمر يسمح لك بترشيح (فلترة) وتحويل النصوص، فهو يتعامل مع مجموعة من البيانات التي يتم إدخالها ثم يقوم بإخراج النتائج (في الغالب على الشاشة أو في ملف). الصيغة العامة للأمر: sed [option] commands [input-file ]بعض الأوامر الأساسية: cat /tmp/passwd | sed 'd'استخدمنا هنا الأمر cat لقراءة ملف ثم استخدمنا خيار 'd' من sed لحذف جميع المحتويات، لكننا لم نأمر Sed بالكتابة على الملف بل أمرناه بكتابة النتيجة على الشاشة لذلك سيقوم بإظهار النتيجة دون أن يقوم بتعديل الملف. ننتقل للمثال الثاني: cat /tmp/passwd | sed -n 'p' | head -5هذا الأمر لطباعة أول خمس أسطر من الملف، قمنا بقراءة النص ثم أمرنا sed بطباعته لكن استخدمنا الأمر head لطباعة أول خمسة أسطر فقط من الملف. كما ترى فإن الأمر Sed يستخدم في الغالب مع أوامر أخرى وهذا ما سيجعله أقوى. ستجد المزيد من الأمثلة في المصدر. المصدر
-
هنالك عدة مكتبات للتعامل مع ملفات pdf في نظام لينكس والتي من أهمها مكتبتي pyPdf و pdfrw. تتميز مكتبة pyPdf بسهول التعامل مع ملفات pdf لكن لديها نقطة سلبية واحد فهذه المكتبة توقفت عن التطوير منذ مدة. مثال يوضح عمل المكتبة: from pyPdf import PdfFileWriter, PdfFileReader output = PdfFileWriter() input1 = PdfFileReader(file("document1.pdf", "rb")) # print the title of document1.pdf print "title = %s" % (input1.getDocumentInfo().title) # add page 1 from input1 to output document, unchanged output.addPage(input1.getPage(0)) # add page 2 from input1, but rotated clockwise 90 degrees output.addPage(input1.getPage(1).rotateClockwise(90)) # add page 3 from input1, rotated the other way: output.addPage(input1.getPage(2).rotateCounterClockwise(90)) # alt: output.addPage(input1.getPage(2).rotateClockwise(270)) # add page 4 from input1, but first add a watermark from another pdf: page4 = input1.getPage(3) watermark = PdfFileReader(file("watermark.pdf", "rb")) page4.mergePage(watermark.getPage(0)) # add page 5 from input1, but crop it to half size: page5 = input1.getPage(4) page5.mediaBox.upperRight = ( page5.mediaBox.getUpperRight_x() / 2, page5.mediaBox.getUpperRight_y() / 2 ) output.addPage(page5) # print how many pages input1 has: print "document1.pdf has %s pages." % input1.getNumPages() # finally, write "output" to document-output.pdf outputStream = file("document-output.pdf", "wb") output.write(outputStream) outputStream.close()وهنالك أيضا مكتبة pdfrw والتي تتميز بالكثير من الخصائص في التعامل مع ملفات PDF، فعلى سبيل المثال يمكنك دمج ملفين PDF عن طريق الشيفرة البرمجية التالي: from pdfrw import PdfReader, PdfWriter pages = PdfReader(r'C:\Users\mdriscoll\Desktop\1.pdf', decompress=False).pages other_pages = PdfReader(r'C:\Users\mdriscoll\Desktop\2.pdf', decompress=False).pages writer = PdfWriter() writer.addpages(pages) writer.addpages(other_pages) writer.write(r'C:\Users\mdriscoll\Desktop\out.pdf') رابط مكتبة pyPDF رابط مكتبة pdfrw
-
هنالك عدة أسباب لوضع مجلدات آخرى غير /home في قسم منفصل ومن أهم هذه الأسباب تقليل الخسائر فإذا حدث أي ضرر أو مشكلة في /usr فهذا لا يعني أنك لن تتمكن من استرجاع /etc، بالإضافة إلى أن (/) لا يمكن أن يكون دائما ro -قابل للقراءة فقط- (فمثلا /root قد يحتاج إلى أن يكون rw) لكن /usr يمكنه أن يكون، لذلك ولأسباب تتعلق بأمن النظام يُنصح أن يكون /usr في قسم آخر. ومن الأسباب الأخرى لجعل ملفات أخرى غير /home في قسم منفصل هي سرعة التأكد من الأخطاء إذا استخدمت أداة مثل fsck بالإضافة إلى إمكانية مشاركة مجلد /usr بين مجموعة أجهزة تستخدم نفس نظام التشغيل … المصدر
-
يعتبر awk من أقوى وأشهر أوامر نظام لينكس للتعامل مع الصفوف والأعمدة في الملفات، وهو يدعم أغلب العمليات الرياضية والجمل الشرطية والحلقات التكرارية وغيرها من شيفرات البرمجة بلغة السي. سأقوم بشرح قصير حول هذا الأمر. الصيغة العامة للأمر هي التالي: awk 'BEGIN {start_action} {action} END {stop_action}' filename الأوامر في جزء BEGIN يتم تنفيذها قبل التعامل مع الملف والأوامر في جزء END بعد التعامل مع الملف أما بقية الأوامر فيتم تنفيذها أثناء التعامل مع الملف. فمثلا لديك ملف يحتوي على التالي: -rw-r--r-- 1 center center 0 Dec 8 21:39 p1 -rw-r--r-- 1 center center 17 Dec 8 21:15 t1 -rw-r--r-- 1 center center 26 Dec 8 21:38 t2 -rw-r--r-- 1 center center 25 Dec 8 21:38 t3 -rw-r--r-- 1 center center 43 Dec 8 21:39 t4 -rw-r--r-- 1 center center 48 Dec 8 21:39 t5وتريد أن تقوم بعرض المعلومات في العمود الأولى، فيمكنك فعل ذلك عن طريق الأمر التالي: awk '{print $1}' input_fileيمثل 1$ العمود الأول في الملف فإذا أردت عرض العمودين الرابع والسادس على سبيل المثال فيمكنك فعل ذلك بسهولة عن طريق الأمر التالي: awk '{print $4,$6}' input_file طبعا لا تنسى استبدال input_file باسم الملف الذي تتعامل معه. هذه هي أبسط الأمثلة للتعامل مع هذا الأمر فإذا أردت المزيد من الأمثلة والشرح أنصحك بزيارة المصدر. المصدر
-
على الرغم من قوة لغة البايثون إلا أنها ضعيفة في مجال الألعاب، فلا توجد العديد من الألعاب (الشهيرة والجيدة) مبرمجة باستخدام لغة البايثون. هنالك مكتبتين رئيسيتين (شهيرتين) لبرمجة الألعاب في البايثون الأولى لصناعة الألعاب 2D وتدعى بـ pyame، والألعاب المبرمجة بهذه المكتبة أغلبها مفتوح المصدر وهذه الميزة ستمكنك من تعلم وفهم هذه المكتبة في مدة أقصر. أما بالنسبة لصناعة ألعاب 3D فيمكنك الاستعانة بمكتبة Panda 3D فهي مكتبة للغة البايثون والسي بلس بلس لصناعة ألعاب ثلاثية الألعاب. أما بالنسبة للألعاب فلا توجد لعبة شهيرة مبرمجة بلغة البايثون فقط فأغلب هذه الألعاب تمت برمجة أجزاء منها بالبايثون وأما بقية الشيفرة البرمجية فتم برمجتها بلغات أخرى. روابط مفيدة: ألعاب تم برمجتها بمكتبة pygame الموقع الرسمي لمكتبة Panda 3D برمجة ألعاب في البايثون (ويكي يحتوي على مكتبات الألعاب وأشهر الألعاب المبرمجة بلغة البايثون وغيرها)
-
يمكنك فعل ذلك بسهولة وبسطر واحد في نظام لينكس، سوف نستخدم نظام دالة awk: awk -F',' 'system("mv " $1 " " $2)' mappingFile.csvوهذا الأمر سوف يعمل على جميع السطور في ملف mappingFile.csv شرح السطر: awk هي أداة مفيدة للغاية في نظام يونكس للتعامل مع البيانات الجدولية. -F',' وهو فاصل الحقول، أي أن الفاصلة ',' هي التي تفصل بين الأسماء القديمة والأسماء الجديدة. system("mv " $1 " " $2) هذا الأمر يعمل على كل سطر من السطور ومعناه قم بتغيير اسم الملف القديم إلى اسم الجديد، وتمت الإشارة إلى الأسماء بمتغيرات 1$ للاسم القديم و 2$ للاسم الجديد. mappingFile.csv هذا هو ملف قائمة الأسماء. المصدر
-
حسب الشيفرة البرمجية التي وضعتها فسوف أفترض أنك تستخدم الإصدار الثالث من البايثون. طريقة تحويلك لسلسلة نصية إلى تاريخ صحيحة ولا توجد أي مشكل فيها، المشكلة أن datetime كائن وليس سلسلة نصية، لذلك لا يمكنك سلسلتها (باستخدام +) إلى سلسلة نصية. الحل أن تقوم بإزالة + ثم تقوم بتمرير كائن datetime كمعامل منفصل كما في المثال التالي: print('Your birthday is', cumpleFecha)أو يمكنك تحويل متغير cumpleFecha إلى سلسلة نصية ثم تقوم بعملية الطباعة كالتالي: print('Your birthday is ' + str(cumpleFecha))أو يمكنك دمج strftime مع دالة print() كالتالي: print('Your birthday is ' + cumpleFecha.strftime('%d %B %Y') المصدر
-
يعتبر سطر الأوامر من أهم مميزات نظام لينكس فعن طريق سطر الأوامر يمكنك فعل الكثير من الأشياء بسهولة وبأقل جهد ووقت وبطرق متعددة (طبعا لمن احترفها). فمن هذه الطرق يمكنك كتابة شيفرة لاستبدال المسافات بأسطر جديد ثم تستخدم awk او cut وبعد ذلك تستبدل مرة أخرى هذه الأسطر الجديدة بالمسافات، وستحتاج إلى الأمر echo لإظهار محتويات (النتيجة): echo $(echo "$test" | tr ' ' '\n' | awk -F'/' '{print $2}' | tr '\n' ' ')أو يمكنك فعل ذلك باستخدام cut : echo $(echo "$test" | tr ' ' '\n' | cut -d/ -f 2 | tr '\n' ' ')ويمكنك فعل هذا أيضا باستخدام سطر واحد من لغة بيرل: echo "$test" | perl -lane 's#.*?/(.+?)/.*#$1# for @F; print "@F"' طرق متعدد ونتيجة واحدة. المصدر
-
يمكنك فعل ذلك بكل سهولة عن طريق تعديل إعدادات sudo ووضع السكربت بخاصية بدون كلمة المرور، وبعد ذلك سيتمكن كل مستخدم على الخادم من تشغيل هذا السكربت بصلاحية sudo بدون أن يطلب منه كلمة المرور. أولا يجب عليك تعديل ملف /etc/sudoers (لا يمكنك تعديله إلا إذا كنت مستخدم جذر root) لإضافة السطر التالي: ALL ALL=(ALL) NOPASSWD: /home/user/asd.shملاحظة: قم بتغيير رابط السكربت حسب الحاجة. وبعد ذلك قم بتشغيل السكربت بأمر sudo وستجده يعمل دون أن يطلب منك كلمة المرور. المصدر
-
هذه المكتبة تسمح لك بالوصول إلى serial port، وهي تعمل على أنظمة ويندوز ولينكس وBSD بالإضافة إلى أنها تدعم مكتبات أخرى مثل Jython و IronPython. بشرح أسهل هذه المكتبة تسمح لك بإرسال واستقبال المعلومات من serial port والذي ستجد صورته في الأسفل: يمكنك تثبيت هذه المكتبة بسهولة عن طريق PyPI: pip install pyserialأو يمكنك تثبيتها عن طريق الأمر التالي: easy_install -U pyserialوبعد ذلك إذا أردت استدعاء المكتبة في برنامجك فيمكنك فعل ذلك بكل سهولة عن طريق الأمر التالي: import serialستجد أمثلة ودروس حول هذه المكتبة في المصدر. المصدر
-
تعتبر لغة البايثون من اللغات القوية والتي ستمكنك من برمجة أي برنامج تريده تقريبا، فيمكنك برمجة متصفح باستخدام مكتبة PyQt4 التي تستخدم Webkit كمحرك تصميم، فأبسط مثال لمتصفح بهذه المكتبة يتكون من 13 سطرا برمجيا: import sys from PyQt4.QtWebKit import QWebView from PyQt4.QtGui import QApplication from PyQt4.QtCore import QUrl app = QApplication(sys.argv) browser = QWebView() browser.load(QUrl(sys.argv[1])) browser.show() app.exec_() قم بتمرير صفحة الويب التي تريد عرضها عن طريق معامل عند تشغيل الملف. وإذا أردت تطوير المتصفح وإضافة شريط العنوان (address bar) حتى تتمكن من كتابة عناوين المواقع مباشرة من المتصفح، يمكنك فعل ذلك بسهولة أيضا : import sys from PyQt4.QtGui import QApplication from PyQt4.QtCore import QUrl from PyQt4.QtWebKit import QWebView from PyQt4.QtGui import QGridLayout, QLineEdit, QWidget class UrlInput(QLineEdit): def __init__(self, browser): super(UrlInput, self).__init__() self.browser = browser # add event listener on "enter" pressed self.returnPressed.connect(self._return_pressed) def _return_pressed(self): url = QUrl(self.text()) # load url into browser frame browser.load(url) if __name__ == "__main__": app = QApplication(sys.argv) # create grid layout grid = QGridLayout() browser = QWebView() url_input = UrlInput(browser) # url_input at row 1 column 0 of our grid grid.addWidget(url_input, 1, 0) # browser frame at row 2 column 0 of our grid grid.addWidget(browser, 2, 0) # main app window main_frame = QWidget() main_frame.setLayout(grid) main_frame.show() # close app when user closes window sys.exit(app.exec_()) للمزيد من الدروس حول إنشاء متصفح ويب قُم بزيارة المصدر. المصدر
-
هنالك عدة طرق للقيام بذلك، فيمكنك تقسيم السلسلة النصية حسب رمز "/” عن طريق split() التي تقوم بإرجاع مصفوفة (array)، وستكون القيمة الأخيرة هي المطلوبة، الشيفرة البرمجية : var data = 'index.html#/recipes/thai'; var splitData = data.split('/'); console.log(splitData[splitData.length-1]); //Returns "thai"وإذا لم تكن تعرف أي جزء ترغب بعزله وتريد أن تقوم بعملية بحث فيمكنك القيام بذلك عن طريق هذه الشيفرة التي ستقوم بالبحث عن موقع الكلمة ثم ستقوم بعزلها: var data = 'index.html#/thairecipes/'; var searchTerm = 'thai'; var index = data.indexOf(searchTerm); var splitData = data.substring(index, index + searchTerm.length);كما يمكنك القيام بنفس العمل عن طريق الجافاسكربت عن طريق lastIndexOf وستكون الشيفرة البرمجية أبسط: var myString = "index.html#/recipes/thai"; return myString.substr( myString.lastIndexOf("/")+1 ); المصدر
- 1 جواب
-
- 2
-
نعم يمكنك فعل ذلك عن طريق مكتبة tweepy التي يجب عليك تحميلها وتثبيتها أولا ثم يجب عليك الحصول على مفاتيح الوصول من موقع المطورين لتويتر، عن طريق الخطوات التالية: وبعد ذلك في Details قم بالضغط على الزر الأزرق الكبير لإنشاء مفاتيح الوصول. هذا مثال لشيفرة برمجية لإرسال تغريدة عن طريق البايثون: #!/usr/bin/env python # -*- coding: utf-8 -*- import tweepy, time, sys argfile = str(sys.argv[1]) #enter the corresponding information from your Twitter application: CONSUMER_KEY = '1234abcd...'#keep the quotes, replace this with your consumer key CONSUMER_SECRET = '1234abcd...'#keep the quotes, replace this with your consumer secret key ACCESS_KEY = '1234abcd...'#keep the quotes, replace this with your access token ACCESS_SECRET = '1234abcd...'#keep the quotes, replace this with your access token secret auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) api = tweepy.API(auth) filename=open(argfile,'r') f=filename.readlines() filename.close() for line in f: api.update_status(line) time.sleep(900)#Tweet every 15 minutesملاحظة: قم بإضافة المعلومات حسب المطلوب (معلومات CONSUMER_KEY و ACCESS_KEY وغيرها ...). بعد ذلك قم بعمل ملف باسم – على سبيل المثال – helloworld.txt وقم بكتابة أي نص تريد تغريده ثم بعد ذلك أكتب الأمر التالي في سطر الأوامر: python helloworld.py helloworld.txtوستجد التغريدة على حسابك في تويتر. إذا أردت المزيد من الشرح حول مكتبة tweepy فستجده في المصدر. المصدر
-
هنالك عدة طرق لتقوم بقراءة جزء من الملف نصي أبسطها هو عن طريق استخدام الشيفرات الأساسية في البايثون دون استدعاء المكتبات، فمثلا في البايثون 3 ستكون الشيفرة البرمجية كالتالي: a = 0 f = open('test.txt') while a < 50: a = a + 1 print(f.readline(), end='') else: f.close()وإذا كنت تستخدم الإصدار الثاني من البايثون فستكون كالتالي: a = 0 f = open('test.txt') while a < 50: a = a + 1 print f.readline(), else: f.close()أما إذا أردت الطريقة الاحترافية فستكون عبر مكتبتي numpy و itertools فستكون الشيفرة البرمجية كالتالي: import numpy as np import itertools with open('test.txt') as f_input: FH = np.loadtxt(itertools.islice(f_input, 0, 50), delimiter=',', skiprows=1) ملاحظة: يمكنك تعديل الشيفرة البرمجية كما تشاء لقراءة أجزاء أكبر عبر تغيير الأرقام الموجودة في الأمثلة. المصدر
-
يمكنك فعل ذلك بطريقتين الأولى عبر طريقة regex مثل المثال التالي: input="I'm one of the persons' stackoverflow don't th'em said, 'hey what' I'll handle it." print re.sub(r"(?<!s)'(?!(?:t|ll|e?m)\b)", '"', input)حيث ستكون نتيجة الشيفرة السابقة كالتالي: I'm one of the persons' stackoverflow don't th'em said, "hey what" I'll handle it.ملاحظة: لا تنسى استدعاء مكتبة re عن طريق كتابة import re في بداية الملف. والطريقة الثانية وهي الطريقة الأبسط، لأنها تتكون من أسطر أطول لكن أسهل للفهم فهي تستخدم شيفرات أساسية من لغة البايثون مثل append و for. شيفرة الطريقة الثانية: text="the stackoverflow don't said, 'hey what'" out = [] for i, j in enumerate(text): if j == '\'': if text[i-1:i+2] == "n't" or text[i:i+3] == "'ll" or text[i:i+3] == "'m": out.append(j) else: out.append('"') else: out.append(j) print ''.join(out)وستكون النتيجة كالتالي: the stackoverflow don't said, "hey what"وبالطبع يمكنك إضافة الاستثناءات كما تريد عن طريق إضافتها إلى الجملة الشرطية. المصدر