سلام استاد وقتتون بخیر
استاد برنامه ای نوشته ام که بتوان از راه دور برنامه پایتون یک مینی کامپیوتر را به روز رسانی کرد
ماژولار این برنامه را نوشته ام و برنامه را از طریق ایمیل دریافت و جایگزین برنامه هم اسم خودش میکند
و بعد از جایگزین کردن کد میخواستم کد را ریست کنم که کد جدید اجرا بشود نه کد قدیمی
از کد زیر استفاده کرده ام ولی مسدله این جاست که همچنان کدقبلی هم اجرا میشود مثلا در کد قبلی نوشته ام "a" و در کد جدید "b" پرینت کند
ولی بعد از ریست در یک خط a و در خط بعدی b را پرینت میکند
امکان این که کلا مینی کامپیوتر را ریست کنم و به صورت خودکار برنامه را ران کنم دارم ولی میخواستم بدون ریست کردن کلی کامپیوتر برنامه به درستی ریست بشود
ممنون میشم راهنمایی کنید پطور برنامه را به درستی ریست کنم
os.system(f"python main.py")
os.execv(sys.executable, ['python'])
os.execv(sys.executable, ['python'] + sys.argv)
با سلام.
با استفاده از
import sys
.....
sys.exit()
( البته اگر درست متوجه منظورتان شده باشم ) می توانید اجرای برنامه را متوقف و از آن خارج شوید. سپس مجدداً آن را run کنید.
سلام
ممنون
ولی چطور میتوانم اتوماتیک برنامه را run کنم چون دسترسی به مینی کامپیوتر در ان زمان ندارم دیگر ندارم و باید همه چیز اتوماتیک باشد
راه کاری که پیدا کرده ام این که کلا کامپیوتر را ران کنم و کاری کنم که به محض بالا اومدن برنامه به صورت خودکار برنامه ران بشود ولی من این راه را اخرین راه کار میدونم میخام بدون ریست کردن دیوایس برنامه ریست بشود
ولی چطور میتوانم اتوماتیک برنامه را run کنم
آیا در حال حاضر برنامه در حال اجراست یا خیر؟ ( یعنی بدون اینکه update جدیدی جایگزین آن شده باشد )
چون پاسخ سوال بالا را نمی دانم و با توجه به اینکه کدهای شما را ندیده ام، به عنوان یک ایده مطالب زیر را برایتان می نویسم. امید که راهگشا باشد.
- فایل update را روی فایل قبلی overwrite نکنید و آنرا در کنار فایل قبلی قرار دهید ( با نام متفاوت )
- نام فایلی که بعداً به عنوان فایل update شده قرار است جایگزین و اجرا شود را در فایل اصلی به عنوان یک متغیر قرار دهید.
- می توان در فایل اصلی ( که در حال حاضر run شده است ) تابعی بنویسید که در بازه های زمانی مختلف ( با توجه به اینکه معمولاً هر از چند وقت یک بار فایل را update می کنید ) اجرا شود و به دنبال فایل update شده ( که نام آنرا از قبل داریم ) بگردد و در صورت پیدا کردن، آنرا اجرا و برنامه ی قبلی را خاتمه دهد. ( حتی می توان بعداً فایل قدیمی را از طریق فایل update حذف کرد. )
به همین دلیل نامگذاری فایل ها اهمیت پیدا می کند و در هر update ی که می نویسید، باید نام فایل udpate بعدی را مشخص کنید.
برای اینکه تابع در period های زمانی متفاوت اجرا شود، Task Scheduling in Python را جستجو کنید. Package های مختلفی برای این کار موجود است.
ضمناً از آنجا که سوال شما به سرفصل های دوره مرتبط نیست ممکن است حذف شود.