در این مطلب، ویدئو PyCon UK 2012: ایجاد رابط های خط فرمان *زیبا* با پایتون را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,979 –> 00:00:03,540
ایجاد رابط های خط فرمان زیبا
2
00:00:03,540 –> 00:00:08,400
با پایتون من یک توسعه دهنده هستم و شما
3
00:00:08,400 –> 00:00:11,750
بچه ها همه توسعه دهنده هستید و ما
4
00:00:11,750 –> 00:00:14,790
نرم افزارهای خوبی توسعه داده ایم و بسیاری از
5
00:00:14,790 –> 00:00:17,490
نرم افزارهایی که به عنوان رابط های خط فرمان توسعه می دهیم
6
00:00:17,490 –> 00:00:20,189
و آخرین باری
7
00:00:20,189 –> 00:00:21,689
که یک دستور زیبا دیدید کی بود.
8
00:00:21,689 –> 00:00:27,210
رابط خط فرمان سلام، من نادیا میکلا هستم، سرآشپز هستم، من
9
00:00:27,210 –> 00:00:32,098
رابط های خط فرمان را انجام می دهم، بنابراین بیایید
10
00:00:32,098 –> 00:00:34,649
به این مثال نگاهی بیندازیم، این یک رابط خط فرمان ساده است.
11
00:00:34,649 –> 00:00:37,590
12
00:00:37,590 –> 00:00:38,579
13
00:00:38,579 –> 00:00:43,739
14
00:00:43,739 –> 00:00:45,480
برنامه ارتباطی
15
00:00:45,480 –> 00:00:48,180
بنابراین می توانید کاری را از طریق TCP و
16
00:00:48,180 –> 00:00:51,300
over serial انجام دهید و می توانید میزبان و
17
00:00:51,300 –> 00:00:54,750
پورت را به عنوان آرگومان 222 یک دستور TCP
18
00:00:54,750 –> 00:00:58,500
را بگذرانید و همچنین می توانید گزینه timeout را در
19
00:00:58,500 –> 00:01:01,949
صورت دستور سریال عبور دهید و می توانید به
20
00:01:01,949 –> 00:01:04,379
صورت اختیاری انتقال و نرخ باود را به صورت اختیاری و تایم اوت را به
21
00:01:04,379 –> 00:01:06,840
صورت اختیاری و همچنین شما انتظار دارید
22
00:01:06,840 –> 00:01:09,420
که با کمک مرگ از آن کمک بگیرید و
23
00:01:09,420 –> 00:01:12,420
این فقط کمک است و همچنین
24
00:01:12,420 –> 00:01:14,220
انتظار دارید نسخه برنامه را
25
00:01:14,220 –> 00:01:16,619
با – – نسخه دریافت کنید من فکر می کنم این یک
26
00:01:16,619 –> 00:01:19,290
نمونه عالی است، این یک فایل خواندنی است یکی شما
27
00:01:19,290 –> 00:01:20,970
بلافاصله می توانید ببینید چه اتفاقی در آنجا رخ می دهد
28
00:01:20,970 –> 00:01:23,460
، بنابراین بیایید ادامه دهیم و
29
00:01:23,460 –> 00:01:26,759
آن را با پایتون پیاده سازی کنیم، بنابراین ابتدا
30
00:01:26,759 –> 00:01:29,909
آنچه می توانیم امتحان کنیم استفاده از
31
00:01:29,909 –> 00:01:32,840
octoparse اختر در کتابخانه استاندارد پایتون است.
32
00:01:32,840 –> 00:01:36,030
33
00:01:36,030 –> 00:01:38,640
34
00:01:38,640 –> 00:01:41,400
گزینه ها و بعد از آن ما
35
00:01:41,400 –> 00:01:43,799
کمک زیادی از آن نداریم زیرا
36
00:01:43,799 –> 00:01:45,540
قسمت فقط گزینه است
37
00:01:45,540 –> 00:01:48,060
و دستورات را تجزیه نمی کند و آرگومان های موقعیت را تجزیه نمی کند
38
00:01:48,060 –> 00:01:51,090
بنابراین
39
00:01:51,090 –> 00:01:53,460
برای عبور و تجزیه دستورات و تجزیه و تحلیل به چند if تودرتو نیاز داریم.
40
00:01:53,460 –> 00:01:56,189
آرگومان های موقعیتی
41
00:01:56,189 –> 00:01:58,170
خوب است، شاید جایگزین دیگری داشته باشیم،
42
00:01:58,170 –> 00:01:59,219
43
00:01:59,219 –> 00:02:03,380
بیایید نوارهای قوس الکتریکی را
44
00:02:03,380 –> 00:02:07,720
در کتابخانه استاندارد پایتون امتحان کنیم، زیرا 2.7
45
00:02:07,720 –> 00:02:10,699
خوب، این کد بسیار کوتاه تر برای
46
00:02:10,699 –> 00:02:12,200
همان رابط خط فرمان است،
47
00:02:12,200 –> 00:02:15,440
بنابراین کاری که ما در اینجا انجام می دهیم، تجزیه خود را وارد می کنیم،
48
00:02:15,440 –> 00:02:18,700
تجزیه کننده خود را نمونه سازی می کنیم و سپس ما
49
00:02:18,700 –> 00:02:22,250
نسخه آرگومان را اضافه می کنیم و سپس تجزیه کننده
50
00:02:22,250 –> 00:02:25,549
های فرعی برابر با تجزیه کننده اضافه
51
00:02:25,549 –> 00:02:29,690
52
00:02:29,690 –> 00:02:32,060
53
00:02:32,060 –> 00:02:35,000
می کنیم.
54
00:02:35,000 –> 00:02:36,530
و غیره و غیره
55
00:02:36,530 –> 00:02:38,780
خوب شما می گویید این بسیار
56
00:02:38,780 –> 00:02:41,269
شی گرا است درست این به
57
00:02:41,269 –> 00:02:43,900
نظر من یک چارچوب شی گرا است
58
00:02:43,900 –> 00:02:46,910
بله در مقایسه با تجزیه کننده گزینه خیلی بد نیست،
59
00:02:46,910 –> 00:02:49,879
اما چیزی که اکثراً به دست می آوریم خوب است
60
00:02:49,879 –> 00:02:53,569
شاید همیشه اینطور نباشد اما
61
00:02:53,569 –> 00:02:55,370
بزرگترین مشکلی که من با
62
00:02:55,370 –> 00:02:58,400
هر دو قسمت خود تجربه کردم و البته این است که
63
00:02:58,400 –> 00:03:02,329
هرگز نمی توانم آن را به درستی انجام دهم، اگر من یک
64
00:03:02,329 –> 00:03:04,190
اسکریپت را انجام دهم و سعی کنم کاری را سریع انجام دهم
65
00:03:04,190 –> 00:03:06,349
هرگز نمی توانم کاری را سریع انجام دهم زیرا
66
00:03:06,349 –> 00:03:08,239
پیش فرض هایی را که یادم نمی آید
67
00:03:08,239 –> 00:03:10,819
نام روشها را
68
00:03:10,819 –> 00:03:13,069
به خاطر نمیآورم که هرگز نمیتوانم آنها را به خاطر بیاورم، بنابراین هر بار که
69
00:03:13,069 –> 00:03:15,099
یک اسکریپت را انجام میدادم و بسیاری از موارد
70
00:03:15,099 –> 00:03:17,750
مورد نیاز را انجام میدادم، کموتاسیون را جستجو میکردم و
71
00:03:17,750 –> 00:03:19,340
به یک وبسایت میرفتم و میبینم که
72
00:03:19,340 –> 00:03:21,519
پیشفرضها کدامها هستند، آرگومانها چیستند.
73
00:03:21,519 –> 00:03:25,849
API از Arc bars بسیار
74
00:03:25,849 –> 00:03:29,750
جابجا شده است، حدود 6 کلاس و حدود
75
00:03:29,750 –> 00:03:32,120
12 روش و برخی از روش
76
00:03:32,120 –> 00:03:38,180
ها حدود 10-12 آرگومان دارند، واقعاً دارای
77
00:03:38,180 –> 00:03:40,489
کلاس هایی مانند تجزیه کننده آرگومان خوب هستند و سپس
78
00:03:40,489 –> 00:03:43,250
توضیحات خام کمک می کند تا فرمت کننده Rotex
79
00:03:43,250 –> 00:03:46,160
به کمک نوع استعاره رمانتیک کمک کند. از یک
80
00:03:46,160 –> 00:03:47,810
فضای نام خود را چه می کنند
81
00:03:47,810 –> 00:03:52,310
تایپ نهایی بی سر و صدا خوب است و ده ها
82
00:03:52,310 –> 00:03:54,079
روش و شما باید
83
00:03:54,079 –> 00:03:55,910
پیش فرض های آرگومان های آن
84
00:03:55,910 –> 00:03:58,790
متدها را به خاطر بسپارید و چه آرگومان هایی داریم
85
00:03:58,790 –> 00:04:00,620
آخرالوگ بسیار خوب
86
00:04:00,620 –> 00:04:03,709
یک استفاده از کمک به کنترل کننده تضادها
87
00:04:03,709 –> 00:04:08,720
والدین خوب عمل narcs خوب narcs
88
00:04:08,720 –> 00:04:10,080
خیلی خب،
89
00:04:10,080 –> 00:04:12,870
من آنجا اتفاق نمی افتاد.
90
00:04:12,870 –> 00:04:15,690
91
00:04:15,690 –> 00:04:17,910
92
00:04:17,910 –> 00:04:20,579
93
00:04:20,579 –> 00:04:25,650
94
00:04:25,650 –> 00:04:28,170
رتبه بندی یک هکر بزرگ و پایتون یکی از
95
00:04:28,170 –> 00:04:30,090
اعضای بنیاد گفت که اگر مجبورید
96
00:04:30,090 –> 00:04:31,950
هر بار
97
00:04:31,950 –> 00:04:35,100
که از یک ماژول استفاده می کنید به مستندات مراجعه کنید، یک ماژول جدید را پیدا کنید یا بسازید،
98
00:04:35,100 –> 00:04:39,320
بنابراین این همان چیزی است که
99
00:04:39,320 –> 00:04:43,020
پیاده سازی کنجکاو از همان
100
00:04:43,020 –> 00:04:45,770
رابط آنلاین آمده با کتابخانه به نام opt
101
00:04:45,770 –> 00:04:49,920
می بینید. آنچه در اینجا اتفاق میافتد، ما
102
00:04:49,920 –> 00:04:54,000
یک تابع را وارد میکنیم و الگوی استفاده را
103
00:04:54,000 –> 00:04:56,850
به این تابع میدهیم، در این حالت
104
00:04:56,850 –> 00:04:59,630
الگوی استفاده در رشته سگ است و
105
00:04:59,630 –> 00:05:03,540
doc opt الگوی استفاده را تجزیه و
106
00:05:03,540 –> 00:05:05,400
پیادهسازی میکند. رابط خط فرمان کامل
107
00:05:05,400 –> 00:05:08,460
برای شما و این تنها کاری است که
108
00:05:08,460 –> 00:05:11,430
شما باید انجام دهید، اما چگونه می تواند این کار را انجام
109
00:05:11,430 –> 00:05:13,950
دهد، بیایید به پیام استفاده ای
110
00:05:13,950 –> 00:05:16,580
که در ابتدا به شما نشان
111
00:05:16,580 –> 00:05:18,960
112
00:05:18,960 –> 00:05:21,060
دادم نگاهی بیندازیم.
113
00:05:21,060 –> 00:05:21,960
در آنجا اتفاق می افتد،
114
00:05:21,960 –> 00:05:24,030
شما می دانید که TCP یک دستور است، ما می دانیم
115
00:05:24,030 –> 00:05:25,650
که چیزهای موجود در براکت های زاویه ای
116
00:05:25,650 –> 00:05:28,740
آرگومان های موقعیتی هستند که
117
00:05:28,740 –> 00:05:30,720
کروشه های مربع عناصر اختیاری را نشان می دهند.
118
00:05:30,720 –> 00:05:33,419
119
00:05:33,419 –> 00:05:35,730
120
00:05:35,730 –> 00:05:37,560
121
00:05:37,560 –> 00:05:40,110
الگو بخشی از
122
00:05:40,110 –> 00:05:43,110
استاندارد I Triple E Y Double L 3.1 است
123
00:05:43,110 –> 00:05:46,640
که با نام all six نیز شناخته می شود،
124
00:05:47,110 –> 00:05:50,590
بنابراین این قالب الگوی استفاده در
125
00:05:50,590 –> 00:05:53,530
قلب هر سیستم یونیکس است و در
126
00:05:53,530 –> 00:05:55,960
قلب هر هکر یونیکس قرار دارد و شما از
127
00:05:55,960 –> 00:06:00,009
قبل این قالب ها را می شناسید، پس چرا نه فقط
128
00:06:00,009 –> 00:06:02,080
آن را تجزیه کنید و رابط های خط فرمان ما را
129
00:06:02,080 –> 00:06:04,930
مانند آن دریافت کنید، بنابراین این
130
00:06:04,930 –> 00:06:06,430
کل API Haupt
131
00:06:06,430 –> 00:06:08,349
است، یک تابع واحد است که یک
132
00:06:08,349 –> 00:06:10,180
آرگومان مورد نیاز و سه آرگومان اختیاری
133
00:06:10,180 –> 00:06:12,430
آرگو مورد نیاز را می گیرد. ment
134
00:06:12,430 –> 00:06:15,580
doc پیام کمکی است که تجزیه شده است art
135
00:06:15,580 –> 00:06:18,520
V، اگر میخواهید بهطور پیشفرض به boolean کمک کنید، میتوانید یک بردار آرگومان صریح ارسال
136
00:06:18,520 –> 00:06:21,460
137
00:06:21,460 –> 00:06:23,800
138
00:06:23,800 –> 00:06:27,310
139
00:06:27,310 –> 00:06:29,050
140
00:06:29,050 –> 00:06:31,000
کنید. اولین نسخه آرگومان شما می توانید
141
00:06:31,000 –> 00:06:33,340
نسخه را برای دریافت یک نسخه رایگان – –
142
00:06:33,340 –> 00:06:36,849
از برنامه خود پاس کنید، بنابراین
143
00:06:36,849 –> 00:06:38,770
یک فرهنگ لغت ساده را باز می گرداند نه
144
00:06:38,770 –> 00:06:41,349
فضای نام و نه یک شی خنده دار فقط یک
145
00:06:41,349 –> 00:06:44,050
فرهنگ لغت است و آیا چیزی
146
00:06:44,050 –> 00:06:45,550
خواناتر از آن است که بلافاصله می توانید
147
00:06:45,550 –> 00:06:47,919
ببینید که اولین گزینه گزینه ای است که
148
00:06:47,919 –> 00:06:49,569
بلافاصله می توانید ببینید که دومی
149
00:06:49,569 –> 00:06:51,520
آرگومان های موقعیت است و
150
00:06:51,520 –> 00:06:53,949
سومی دستوری است که نمی تواند بیشتر
151
00:06:53,949 –> 00:06:57,900
از آن قابل خواندن باشد و سپس
152
00:06:57,900 –> 00:07:01,930
بیایید یک مثال واقعی در نظر بگیریم
153
00:07:01,930 –> 00:07:05,349
این تابعی است که رابط خط فرمان را پیاده سازی می
154
00:07:05,349 –> 00:07:08,560
کند. از اسکریپت 12/8، بنابراین
155
00:07:08,560 –> 00:07:11,259
اسکریپت هشت را که میدانیم و دوست
156
00:07:11,259 –> 00:07:13,839
داریم که هر روز برای بررسی خطای سبک کد منبع پایتون استفاده میکنیم،
157
00:07:13,839 –> 00:07:16,449
این فقط یک
158
00:07:16,449 –> 00:07:17,650
تابع است که خط فرمان را در آن پیادهسازی میکند
159
00:07:17,650 –> 00:07:20,800
. terface و اینجا همان کاری است که ما
160
00:07:20,800 –> 00:07:25,870
با استفاده از Dobbs انجام دادیم، من فقط
161
00:07:25,870 –> 00:07:28,389
از ترمینال خود خروجی دستور help
162
00:07:28,389 –> 00:07:31,740
از peppe را کپی
163
00:07:39,620 –> 00:07:42,870
کردم. من فقط تغییرات جزئی دارم و می
164
00:07:42,870 –> 00:07:46,259
توانم بلافاصله از آن استفاده کنم، بنابراین
165
00:07:46,259 –> 00:07:48,949
اکنون به تفصیل می پردازم در مورد زبان
166
00:07:48,949 –> 00:07:51,509
در مورد این زبان خاص دامنه،
167
00:07:51,509 –> 00:07:54,630
این یک پیام کمکی است که
168
00:07:54,630 –> 00:07:56,699
ابتدا شامل یک متن دلخواه است، اما
169
00:07:56,699 –> 00:07:58,410
همچنین شامل یک الگوی استفاده و
170
00:07:58,410 –> 00:08:01,229
توضیح گزینه ها است، الگوی استفاده ای
171
00:08:01,229 –> 00:08:04,349
که می دانید و مانند
172
00:08:04,349 –> 00:08:06,930
POSIX و توضیحات گزینه ها استاندارد شده است. برخی از
173
00:08:06,930 –> 00:08:09,120
داده های اضافی است که می توانید برای
174
00:08:09,120 –> 00:08:11,310
رفع برخی ابهامات استفاده کنید، بنابراین من روند الگوی استفاده را شرح می دهم،
175
00:08:11,310 –> 00:08:14,370
176
00:08:14,370 –> 00:08:17,699
این مثالی از الگوی استفاده با یک
177
00:08:17,699 –> 00:08:19,680
دستور و یک گزینه و یک آرگومان
178
00:08:19,680 –> 00:08:22,740
و یک آرگومان اختیاری و سپس یک
179
00:08:22,740 –> 00:08:25,380
گزینه با یک آرگومان است و ما داریم
180
00:08:25,380 –> 00:08:27,419
میتوانیم آن را برای عناصر متقابلاً انحصاری
181
00:08:27,419 –> 00:08:29,280
داشته باشیم و عناصر تکرار شونده داشته باشیم،
182
00:08:29,280 –> 00:08:33,120
بنابراین اولین نوع عناصر یک
183
00:08:33,120 –> 00:08:35,610
آرگومان موقعیتی است، بنابراین هر کلمهای
184
00:08:35,610 –> 00:08:39,000
که در براکتهای زاویهای یا حروف بزرگ باشد. e یک
185
00:08:39,000 –> 00:08:41,279
آرگومان موقعیتی است نمی دانم چرا
186
00:08:41,279 –> 00:08:44,790
به شما می گویم می دانید که پس این
187
00:08:44,790 –> 00:08:47,010
مثالی از استفاده ساده با دو
188
00:08:47,010 –> 00:08:48,870
آرگومان موقعیتی است که آرگومان های آن ها
189
00:08:48,870 –> 00:08:51,660
میزبان import و سپس گزینه های گزینه ها
190
00:08:51,660 –> 00:08:53,370
چیزهایی هستند که با خط تیره شروع می شوند شما می دانید
191
00:08:53,370 –> 00:08:56,760
که و این یک مثال از گزینههایی
192
00:08:56,760 –> 00:08:59,459
که میپذیرند میتوانند مدیریت کنند، بنابراین همه
193
00:08:59,459 –> 00:09:02,670
گزینههای استاندارد یونیکس c را که انتظار
194
00:09:02,670 –> 00:09:05,730
دارید میتوانید چندین گزینه تبلیغاتی منفرد
195
00:09:05,730 –> 00:09:07,620
مانند دو خط اول
196
00:09:07,620 –> 00:09:09,270
197
00:09:09,270 –> 00:09:11,760
198
00:09:11,760 –> 00:09:13,560
را روی هم قرار دهید. فاصله بین یک
199
00:09:13,560 –> 00:09:15,870
گزینه تک حرفی و یک آرگومان یا اینکه
200
00:09:15,870 –> 00:09:18,089
نمی توانید فضایی که در اختیار شماست را نداشته باشید، می توانید
201
00:09:18,089 –> 00:09:21,240
آنها را به شکل POSIX C همانطور که
202
00:09:21,240 –> 00:09:23,370
می خواهید روی هم قرار دهید، اما ممکن است فکر کنید که
203
00:09:23,370 –> 00:09:25,440
برخی از آن قالب ها
204
00:09:25,440 –> 00:09:28,079
مانند خط چهارم کمی مبهم هستند. واقعاً نمی توان
205
00:09:28,079 –> 00:09:32,520
تشخیص داد که آیا ورودی یک
206
00:09:32,520 –> 00:09:34,529
پرچم است یا یک گزینه با آرگومان است
207
00:09:34,529 –> 00:09:37,620
که می توانید بدون علامت و
208
00:09:37,620 –> 00:09:39,899
فقط به این گزینه بگویید، اما می توانید
209
00:09:39,899 –> 00:09:42,480
این ابهامات را در توضیحات گزینه ها برطرف کنید.
210
00:09:42,480 –> 00:09:44,260
من
211
00:09:44,260 –> 00:09:47,050
در یک ثانیه توضیح خواهم داد اما شما البته
212
00:09:47,050 –> 00:09:49,360
تشویق به استفاده از
213
00:09:49,360 –> 00:09:53,880
قالب های غیر مبهم مانند استفاده از علامت مساوی و بنابراین
214
00:09:53,880 –> 00:09:56,230
این نمونه ای از استفاده با
215
00:09:56,230 –> 00:09:59,200
گزینه های بسیار با چند گزینه تک حرفی
216
00:09:59,200 –> 00:10:00,699
در ابتدا و سپس
217
00:10:00,699 –> 00:10:02,889
گزینه های طولانی با استدلال است. و بدون
218
00:10:02,889 –> 00:10:07,060
آرگومان و غیره، دستور یک
219
00:10:07,060 –> 00:10:09,339
فرمان هر کلمه ای در الگوی استفاده شما
220
00:10:09,339 –> 00:10:10,959
است که شبیه
221
00:10:10,959 –> 00:10:12,670
آرگومان نیست و شبیه گزینه
222
00:10:12,670 –> 00:10:14,949
نیست، بنابراین اگر در براکت های زاویه ای نباشد اگر
223
00:10:14,949 –> 00:10:17,170
بزرگ نباشد و اگر نباشد.
224
00:10:17,170 –> 00:10:21,279
با خط تیره شروع کنید سپس یک دستور است، بنابراین
225
00:10:21,279 –> 00:10:23,139
این یک نمونه از یک الگوی استفاده
226
00:10:23,139 –> 00:10:25,180
با دستورات بسیاری است مانند ارسال جدید و
227
00:10:25,180 –> 00:10:28,389
حرکت فوق العاده و سوم جرعه و
228
00:10:28,389 –> 00:10:31,149
حذف ذهنیت و می توانید ببینید که
229
00:10:31,149 –> 00:10:33,850
این یک رابط خط فرمان نیاز است
230
00:10:33,850 –> 00:10:36,220
زیرا تعادل بسیار خوبی
231
00:10:36,220 –> 00:10:39,850
بین دستورات و آرگومان های موقعیتی
232
00:10:39,850 –> 00:10:42,279
و گزینه ها دارد و من فکر می کنم که این یک
233
00:10:42,279 –> 00:10:46,180
الگوی استفاده عالی است و در ابتدا می خواستم
234
00:10:46,180 –> 00:10:48,820
از این الگوی استفاده به عنوان اولین
235
00:10:48,820 –> 00:10:51,459
مثال با شخص خودمان استفاده کنم ال