PDA

View Full Version : یادگیری کاربردی پایتون



ASedJavad
یک شنبه 30 بهمن 1390, 13:26 عصر
سلام
همین اول کار اعتراف می کنم که بازم جستجو نکردم!

من دیگه تقریبا با اصول برنامه نویسی پایتون آشنا شدم
اما نمی دونم چرا هیچ دیدگاهی راجع به نوشتن برنامه های کاربردی (چه تحت دسکتاب و چه تحت وب) ندارم
همین دیروز یکی بهم پیشنهاد طراحی وب با پایتون رو بهم داد ولی هر چی فکر کردم دیدم هیچ دیدگاهی نسبت به این قضیه ندارم
نمی دونم مشکل چیه
ولی شاید راهش این باشه که چند نمونه از کارایی که با پایتون شده رو ببینم
خوشحال میشم چند نمونه کاری که با پایتون انجام شده (کارای درست و درمون) رو برام بذارید

Glimpser
دوشنبه 01 اسفند 1390, 22:07 عصر
چند وقته که می خواهم چندتا از برنامه هایی هایی که با پیتون روی dvb های خانگی اجرا میشوند را تغییر بدهم
سورس کد را اینجا برایتان میگذارم با پیتون 2.6 نوشته شده
تغییری که میخواهم انجام بدم حذف اتوماتیک فایل tmp ایجاد شده توسط برنامه هنگام خروج از برنامه است
ممنون میشم اگر اصلاحش کنید

این برنامه نقشه ترافیک آنلاین تهران را توی tv نشان میدهد





# Adapted by Kam10 from Ihad.tv enigma2-plugin tutorial 2010 lesson 7 & 8 by Emanuel
################################################## #########################
from Screens.Screen import Screen
from Components.Label import Label
from Components.Pixmap import Pixmap
from Components.AVSwitch import AVSwitch
from Components.ActionMap import ActionMap
from enigma import ePicLoad
from twisted.web.client import downloadPage
from Screens.MessageBox import MessageBox
from Plugins.Plugin import PluginDescriptor

################################################## #########################
class PictureScreen(Screen):

skin="""
<screen name="PictureScreen" position="0,0" size="1280,720" title="Picture Screen" backgroundColor="#002C2C39">
<widget name="myPic" position="0,0" size="1280,720" zPosition="1" alphatest="on" />
</screen>"""

def __init__(self, session, picPath = None):
Screen.__init__(self, session)
print "[PictureScreen] __init__\n"
self.picPath = picPath
self.Scale = AVSwitch().getFramebufferScale()
self.PicLoad = ePicLoad()
self["myPic"] = Pixmap()
self["myActionMap"] = ActionMap(["SetupActions"],
{
"ok": self.cancel,
"cancel": self.cancel
}, -1)

self.PicLoad.PictureData.get().append(self.DecodeP icture)
self.onLayoutFinish.append(self.ShowPicture)

def ShowPicture(self):
if self.picPath is not None:
self.PicLoad.setPara([
self["myPic"].instance.size().width(),
self["myPic"].instance.size().height(),
self.Scale[0],
self.Scale[1],
0,
1,
"#002C2C39"])

self.PicLoad.startDecode(self.picPath)

def DecodePicture(self, PicInfo = ""):
if self.picPath is not None:
ptr = self.PicLoad.getData()
self["myPic"].instance.setPixmap(ptr)


def cancel(self):
print "[PictureScreen] - cancel\n"
self.close(None)


class getPicfromUrl(object):
def __init__(self, session, url=None, path=None):
self.path = path
self.session = session
self.download(url, path)

def download(self, url, path):
downloadPage(url, path).addCallback(self.downloadDone).addErrback(se lf.downloadError)

def downloadError(self, raw):
print "[e2Fetcher.fetchPage]: download Error", raw
self.session.open(MessageBox, text = _("Error downloading: ") + self.path, type = MessageBox.TYPE_ERROR)

def downloadDone(self,raw):
print "[e2Fetcher.fetchPage]: download done", raw
self.session.open(PictureScreen, picPath = self.path)

################################################## #########################

def main(session, **kwargs):
getPicfromUrl(session,"http://www.tehrantraffic.com/trafficmap/ShowImage.asp", "/tmp/tehran.tmp")

################################################## #########################

def Plugins(**kwargs):
return PluginDescriptor(
name="TehranTraffic-online",
description="showing Tehran traffic online-map",
where = PluginDescriptor.WHERE_PLUGINMENU,
icon="./tehran.png",
fnc=main)

Glimpser
سه شنبه 02 اسفند 1390, 03:29 صبح
asedjavad (http://barnamenevis.org/member.php?60645-asedjavad) میخواهد کارهای با پیتون را ببیند من هم یک نمونه از کارهای Emanuel که جزو تیم اصلی جمینی است را اینجا بعنوان نمونه گذاشتم
بهش هم پیشنهاد دادم که اگر میتواند یک قابلیت ساده بهش اضافه کنه
از اون هم جالبتر این برنامه نه روی PC و نه وب بلکه روی گیرنده های تلویزیون بصورت مستقل اجرا میشوند

حالا جناب geek1982 چرا باید این پست بعنوان " برای موضوع جدید باید تاپیک جدید ایجاد شود" حذف شود

r00tkit
سه شنبه 02 اسفند 1390, 10:32 صبح
شما درست می گید ./
پستت برگشت :)

ASedJavad
سه شنبه 02 اسفند 1390, 12:01 عصر
با پیتون روی dvb های خانگی اجرا میشوند
سلام
ممنون
مگه روی دی وی دی هم برنامه اجرا میشه؟
چطوری؟
رو مارک خاصی یا همه مارک ها
فرض کنید من بخوام اینو رو دی وی دیمون اجرا کنم، باید چکار کنم؟:متفکر::متفکر:

Glimpser
پنج شنبه 04 اسفند 1390, 20:52 عصر
dvb با DVD تفاوت داره

ASedJavad
پنج شنبه 04 اسفند 1390, 22:44 عصر
درسته
من اشتباه خوندم