در این مطلب، ویدئو فهرست همه فایل های یک فهرست | همه فایلها را در یک فهرست با پسوند .txt | پیدا کنید پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:21:03
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,399 –> 00:00:02,000
سلام فینکسترها
2
00:00:02,000 –> 00:00:04,319
گاهی اوقات به عنوان یک کدنویس مجبور هستید
3
00:00:04,319 –> 00:00:06,480
با تعداد بی شماری از فایل ها
4
00:00:06,480 –> 00:00:08,880
در دایرکتوری های مختلف سر و کار داشته باشید، از این
5
00:00:08,880 –> 00:00:11,280
رو سازماندهی این
6
00:00:11,280 –> 00:00:13,840
فایل ها در دایرکتوری های خاص منطقی می شود در
7
00:00:13,840 –> 00:00:16,079
این سخنرانی ما قصد داریم
8
00:00:16,079 –> 00:00:18,560
روش های مختلفی را در مورد نحوه فهرست کردن همه
9
00:00:18,560 –> 00:00:20,960
فایل ها بررسی کنیم. یک دایرکتوری اما این
10
00:00:20,960 –> 00:00:24,240
اولین بیتی است که به عنوان یک توسعه دهنده ممکن است نیاز داشته باشید
11
00:00:24,240 –> 00:00:26,960
که نوع فایل های موجود در یک فهرست خاص را فیلتر کنید که فایل های موجود
12
00:00:26,960 –> 00:00:29,599
13
00:00:29,599 –> 00:00:32,640
در یک دایرکتوری با
14
00:00:32,640 –> 00:00:34,960
پسوند خاص را قبل از انجام هر
15
00:00:34,960 –> 00:00:38,079
عملیاتی بر روی آن فایل ها فهرست می کند، بنابراین ما
16
00:00:38,079 –> 00:00:40,559
روش های مختلف را نیز مورد بحث قرار خواهیم داد. برای یافتن
17
00:00:40,559 –> 00:00:43,120
تمام فایلهای یک دایرکتوری با
18
00:00:43,120 –> 00:00:46,239
پسوند خاص در این مثال، ما
19
00:00:46,239 –> 00:00:49,840
با فایلهای dot txt که فایلهای متنی
20
00:00:49,840 –> 00:00:52,960
در پایتون را نشان میدهند، سر و کار خواهیم داشت، لطفا توجه داشته باشید که
21
00:00:52,960 –> 00:00:56,000
اگرچه نگاهی به فایلهای متنی خواهیم داشت،
22
00:00:56,000 –> 00:00:59,760
اما این روشها برای هر روش دیگری نیز کار خواهند کرد.
23
00:00:59,760 –> 00:01:02,320
فایل با پسوند متفاوت
24
00:01:02,320 –> 00:01:05,519
به عنوان مثال فایل های csv فایل های pdf و غیره
25
00:01:05,519 –> 00:01:07,920
به همین ترتیب بدون تاخیر بیشتر اجازه دهید
26
00:01:07,920 –> 00:01:10,159
بازی ها شروع شوند و ما شروع به یافتن
27
00:01:10,159 –> 00:01:11,280
فایل ها کنیم.
28
00:01:11,280 –> 00:01:13,680
اولین دوست ما در این سفر
29
00:01:13,680 –> 00:01:16,960
قرار است ماژول os باشد
30
00:01:16,960 –> 00:01:20,000
. ماژول os یک ماژول در پایتون است که دارای
31
00:01:20,000 –> 00:01:22,880
توابع از پیش تعریف شده مختلفی است که می توان از آن
32
00:01:22,880 –> 00:01:25,840
برای کار بر روی دایرکتوری ها استفاده کرد.
33
00:01:25,840 –> 00:01:28,159
34
00:01:28,159 –> 00:01:30,880
35
00:01:30,880 –> 00:01:33,840
حذف یک دایرکتوری که فایل های
36
00:01:33,840 –> 00:01:35,119
یک دایرکتوری را فهرست می کند
37
00:01:35,119 –> 00:01:37,600
و دایرکتوری فعلی را تغییر می دهد اکنون در
38
00:01:37,600 –> 00:01:39,520
این سخنرانی به
39
00:01:39,520 –> 00:01:42,320
نکته شماره دو می پردازیم که
40
00:01:42,320 –> 00:01:45,680
اکنون فایل های یک دایرکتوری را لیست می کند، لطفاً به یاد داشته باشید
41
00:01:45,680 –> 00:01:48,159
که برای استفاده از
42
00:01:48,159 –> 00:01:51,280
توابع ماژول os باید
43
00:01:51,280 –> 00:01:54,159
ماژول OS را قبل از استفاده از کد خود وارد کنید، بنابراین
44
00:01:54,159 –> 00:01:56,799
بیایید به چند مثال نگاهی بیندازیم و
45
00:01:56,799 –> 00:01:58,960
یاد بگیریم که چگونه ماژول OS و
46
00:01:58,960 –> 00:02:02,000
عملکردهای آن به ما کمک می کند تا فایل های یک
47
00:02:02,000 –> 00:02:04,719
دایرکتوری را فهرست کنیم، بنابراین اولین روش
48
00:02:04,719 –> 00:02:07,040
ماژول os که به ما کمک می کند لیست همه
49
00:02:07,040 –> 00:02:10,160
فایلها و دایرکتوریها به عنوان list dir شناخته میشود،
50
00:02:10,160 –> 00:02:13,680
این دقیقاً در اینجا
51
00:02:13,680 –> 00:02:16,640
سینتکس متد list dir است، اکنون متد list dir
52
00:02:16,640 –> 00:02:19,440
نیز پارامتری را میگیرد که
53
00:02:19,440 –> 00:02:22,000
مسیری است که در آن باید sp.
54
00:02:22,000 –> 00:02:24,640
مسیر دایرکتوری را مشخص کنید که در آن
55
00:02:24,640 –> 00:02:27,760
میخواهید همه فایلها را
56
00:02:27,760 –> 00:02:31,120
فهرست کنید، اما اگر list dir هیچ پارامتر مسیری
57
00:02:31,120 –> 00:02:33,680
در آن وجود نداشته باشد، تمام
58
00:02:33,680 –> 00:02:36,080
فایلهای موجود در دایرکتوری کاری فعلی را
59
00:02:36,080 –> 00:02:38,319
فهرست میکند، بنابراین اجازه دهید اکنون به این موضوع در کد خود نگاهی بیندازیم.
60
00:02:38,319 –> 00:02:40,160
همانطور که
61
00:02:40,160 –> 00:02:42,879
قبلاً اشاره کردم برای استفاده از هر
62
00:02:42,879 –> 00:02:45,440
روشی از ماژول os، ابتدا باید
63
00:02:45,440 –> 00:02:48,000
ماژول os را وارد کنید، پس بیایید ادامه دهیم
64
00:02:48,000 –> 00:02:49,440
و این کار را انجام
65
00:02:49,440 –> 00:02:50,480
66
00:02:50,480 –> 00:02:52,879
دهیم خوب، اکنون ماژول os را وارد کرده ایم حالا
67
00:02:52,879 –> 00:02:55,440
بیایید از یک متغیر li استفاده کنیم
68
00:02:55,440 –> 00:02:58,560
که لیستی است که این کار را انجام می دهد. همه
69
00:02:58,560 –> 00:03:00,560
فایلهایی را که در دایرکتوری کاری فعلی ما وجود دارند ذخیره کنید
70
00:03:00,560 –> 00:03:04,000
، بنابراین li برابر با
71
00:03:04,000 –> 00:03:08,560
os dot list tir است، بنابراین این بدان معناست که
72
00:03:08,560 –> 00:03:12,080
list dir لیستی از اشیاء را برمیگرداند، در
73
00:03:12,080 –> 00:03:14,400
این مورد، اشیاء فایلهای
74
00:03:14,400 –> 00:03:17,120
داخل دایرکتوری هستند، حالا اجازه دهید جلو برویم
75
00:03:17,120 –> 00:03:19,840
و از یک برای استفاده کنیم. حلقه بزنید و بیایید
76
00:03:19,840 –> 00:03:21,920
روی همه فایلهایی که
77
00:03:21,920 –> 00:03:24,799
در لیست ما ذخیره شدهاند تکرار کنیم و
78
00:03:24,799 –> 00:03:28,400
فایلها را یکی یکی
79
00:03:28,400 –> 00:03:31,120
پرینت
80
00:03:31,120 –> 00:03:36,239
بگیریم، خوب است، خب حالا بیایید کد خود را اجرا کنیم،
81
00:03:36,400 –> 00:03:39,440
همانطور که میبینید اینها فایل
82
00:03:39,440 –> 00:03:41,360
هایی هستند که در دایرکتوری کاری فعلی من وجود دارند
83
00:03:41,360 –> 00:03:44,400
، بنابراین در حال حاضر من در
84
00:03:44,400 –> 00:03:46,799
این دایرکتوری هستم که سیستم عامل پایتون است و
85
00:03:46,799 –> 00:03:49,040
اینها فایل هایی هستند که
86
00:03:49,040 –> 00:03:51,680
در سیستم عامل پایتون وجود دارند، بنابراین می بینید که
87
00:03:51,680 –> 00:03:54,239
آنها با کمک لیست در اینجا
88
00:03:54,239 –> 00:03:57,760
لیست شده اند. روش dir ماژول os خوب است
89
00:03:57,760 –> 00:04:00,480
که حالا خوب است اگر بخواهید
90
00:04:00,480 –> 00:04:03,599
تمام فایل های متنی را از این
91
00:04:03,599 –> 00:04:06,080
دایرکتوری فیلتر کنید، یعنی فایل هایی که
92
00:04:06,080 –> 00:04:09,040
پسوند dot txt دارند، بنابراین سه
93
00:04:09,040 –> 00:04:10,959
فایل در این فهرست با پسوند dot txt وجود دارد
94
00:04:10,959 –> 00:04:15,560
که abc.txt است. demo.txt و
95
00:04:15,560 –> 00:04:18,798
work.txt پس بیایید جلو برویم و
96
00:04:18,798 –> 00:04:21,600
اینها را فیلتر کنیم اکنون یک راه بسیار ساده برای
97
00:04:21,600 –> 00:04:24,080
انجام این کار وجود دارد که شما به سادگی باید ادامه دهید
98
00:04:24,080 –> 00:04:26,880
و بررسی کنید که آیا فایل
99
00:04:26,880 –> 00:04:29,199
dot با
100
00:04:29,199 –> 00:04:32,560
now به پایان می رسد
101
00:04:32,560 –> 00:04:35,600
یا خیر، روشی است که اگر رشته ای که فایل است در این
102
00:04:35,600 –> 00:04:38,160
حالت است که نام فایل با
103
00:04:38,160 –> 00:04:41,120
مقدار خاصی که به عنوان پارامتر به آن وارد شده است خاتمه می یابد
104
00:04:41,120 –> 00:04:42,800
،
105
00:04:42,800 –> 00:04:45,680
اکنون در این حالت ما به سادگی با
106
00:04:45,680 –> 00:04:49,199
dot txt به عنوان پارامتر انتهای خود را
107
00:04:49,199 –> 00:04:51,919
با متد تغذیه می کنیم که بررسی می کند آیا نام فایل
108
00:04:51,919 –> 00:04:54,160
با t به پایان می رسد xt
109
00:04:54,160 –> 00:04:57,040
اگر بله فقط در آن صورت ادامه می دهد و
110
00:04:57,040 –> 00:04:59,919
فایل یا نام فایل را چاپ می کند حالا اگر
111
00:04:59,919 –> 00:05:02,960
بخواهید می توانید ادامه دهید و
112
00:05:02,960 –> 00:05:05,919
این فایل ها را در لیست دیگری ذخیره کنید، فرض کنید
113
00:05:05,919 –> 00:05:08,960
من یک لیست دارم با نام فایل ها و
114
00:05:08,960 –> 00:05:12,240
اکنون به سادگی ادامه دهید و بررسی کنید که آیا یک
115
00:05:12,240 –> 00:05:15,600
فایل خاص به dot txt ختم میشود
116
00:05:15,600 –> 00:05:18,639
یا نه، به این معنی است که یک فایل متنی است و اکنون من
117
00:05:18,639 –> 00:05:21,680
به سادگی آن فایل را در
118
00:05:21,680 –> 00:05:24,639
لیست فایلهای خود اضافه میکنم، فایلهای dot append و درون
119
00:05:24,639 –> 00:05:26,960
آن فایل را ضمیمه میکنم
120
00:05:26,960 –> 00:05:29,759
خوب حالا بیایید ادامه دهیم و اجازه دهید
121
00:05:29,759 –> 00:05:33,680
روی فایلهای لیست خود تکرار کنید، بنابراین برای i در
122
00:05:33,680 –> 00:05:34,800
فایلها،
123
00:05:34,800 –> 00:05:36,840
اجازه دهید i را پرینت بگیریم
124
00:05:36,840 –> 00:05:40,080
تا همینطور است، بیایید ادامه دهیم و
125
00:05:40,080 –> 00:05:42,160
این را اجرا کنیم و بیایید بفهمیم که آیا این کار میکند یا خیر
126
00:05:42,160 –> 00:05:44,560
127
00:05:44,960 –> 00:05:47,919
و همانطور که میبینید،
128
00:05:47,919 –> 00:05:51,120
اکنون فقط آن فایلهایی داریم که دارای
129
00:05:51,120 –> 00:05:52,880
پسوند.txt هستند.
130
00:05:52,880 –> 00:05:56,479
یعنی ما فقط فایلهای متنی را داریم، بنابراین به
131
00:05:56,479 –> 00:05:58,960
این صورت میتوانید از روش listdir
132
00:05:58,960 –> 00:06:01,120
برای فهرست کردن همه فایلها در یک
133
00:06:01,120 –> 00:06:03,440
فهرست استفاده کنید و سپس میتوانید از
134
00:06:03,440 –> 00:06:06,639
روش endswith برای پیدا کردن یک فایل با
135
00:06:06,639 –> 00:06:08,720
پسوند خاص استفاده
136
00:06:08,720 –> 00:06:09,759
کنید،
137
00:06:09,759 –> 00:06:11,840
حالا روش بعدی سیستم عامل است. ماژولی
138
00:06:11,840 –> 00:06:14,639
که به ما کمک می کند تا فایل های یک
139
00:06:14,639 –> 00:06:17,680
کارگردان را فهرست کنیم y یک بار دیگر به عنوان متد walk شناخته می شود،
140
00:06:17,680 –> 00:06:20,000
این روشی از ماژول os است،
141
00:06:20,000 –> 00:06:22,639
بنابراین
142
00:06:22,639 –> 00:06:25,280
برای استفاده از این روش باید ماژول os را وارد کنید،
143
00:06:25,280 –> 00:06:28,080
اکنون متد walk به انجام سه
144
00:06:28,080 –> 00:06:31,360
کار کمک می کند، یکی به استخراج نام دایرکتوری ریشه کمک می کند.
145
00:06:31,360 –> 00:06:34,400
دوم
146
00:06:34,400 –> 00:06:36,720
فهرستی از نامهای
147
00:06:36,720 –> 00:06:40,080
زیر شاخهها را ارائه میکند و سوم همه
148
00:06:40,080 –> 00:06:42,960
نامهای فایلها را در فهرست فعلی فهرست میکند،
149
00:06:42,960 –> 00:06:45,680
بنابراین از تابع سوم آن
150
00:06:45,680 –> 00:06:48,479
استفاده میکنیم و همه فایلها را
151
00:06:48,479 –> 00:06:51,120
در فهرست فعلی فهرست میکنیم.
152
00:06:51,120 –> 00:06:55,520
os dot walk یا بیایید بگوییم
153
00:06:55,520 –> 00:06:58,560
همه فایلهای زیر خط و در داخل os dot
154
00:06:58,560 –> 00:07:01,599
walk ما باید مسیر را طی کنیم، در این
155
00:07:01,599 –> 00:07:04,479
صورت میخواهیم تمام فایلها را
156
00:07:04,479 –> 00:07:06,880
در پوشه کاری فعلی خود
157
00:07:06,880 –> 00:07:09,599
که python os است پیدا کنیم، بنابراین برای انجام این کار
158
00:07:09,599 –> 00:07:11,680
فقط باید نقطه را مشخص کنیم.
159
00:07:11,680 –> 00:07:15,120
قبل از انجام
160
00:07:15,120 –> 00:07:17,440
هر کار دیگری، بیایید به جلو برویم و
161
00:07:17,440 –> 00:07:20,080
ببینیم چه اتفاقی می افتد اگر همه
162
00:07:20,080 –> 00:07:23,280
فایل های زیر خط را چاپ کنیم، بیایید این را اجرا کنیم و به
163
00:07:23,280 –> 00:07:27,120
آنجا می رویم همانطور که می بینید
164
00:07:27,120 –> 00:07:29,759
ابتدا نام دایرکتوری ریشه را داریم
165
00:07:29,759 –> 00:07:31,520
که در این case
166
00:07:31,520 –> 00:07:34,319
دایرکتوری کاری فعلی است از این رو که با یک نقطه نشان داده می شود
167
00:07:34,319 –> 00:07:37,759
، سپس نام
168
00:07:37,759 –> 00:07:40,720
زیر پوشه ها را در دایرکتوری فعلی داریم
169
00:07:40,720 –> 00:07:43,280
و همانطور که می بینید در اینجا یک پوشه فرعی داریم
170
00:07:43,280 –> 00:07:45,520
که با نام زیر خط dir می رود به
171
00:07:45,520 –> 00:07:47,680
طوری که در اینجا لیست شده
172
00:07:47,680 –> 00:07:50,879
است و سپس ما تمام فایل های
173
00:07:50,879 –> 00:07:53,280
موجود در این دایرکتوری را داریم که
174
00:07:53,280 –> 00:07:56,800
این فایل ها هستند، اکنون وظیفه ما این است که
175
00:07:56,800 –> 00:08:00,160
همه این فایل ها را استخراج کنیم، پس چگونه آن را انتخاب کنیم،
176
00:08:00,160 –> 00:08:02,879
قبل از اینکه به شما بگویم چگونه
177
00:08:02,879 –> 00:08:05,199
فقط فایل ها را انتخاب کنید، ممکن است تعجب کنید که این چیست
178
00:08:05,199 –> 00:08:06,080
179
00:08:06,080 –> 00:08:09,360
این چیزی نیست اما یک بار دیگر نام
180
00:08:09,360 –> 00:08:12,080
زیر شاخه ای است که زیر
181
00:08:12,080 –> 00:08:14,560
خط a است و در این مورد
182
00:08:14,560 –> 00:08:17,440
زیر شاخه ریشه است، بنابراین این
183
00:08:17,440 –> 00:08:19,599
نام دایرکتوری ریشه است که
184
00:08:19,599 –> 00:08:22,479
در این مورد زیر شاخه است، سپس ما
185
00:08:22,479 –> 00:08:24,960
همه زیر شاخه ها را داریم، بنابراین
186
00:08:24,960 –> 00:08:27,520
زیرشاخه های موجود در این
187
00:08:27,520 –> 00:08:31,120
دایرکتوری هیچکدام نیست، بنابراین یک لیست خالی است در نهایت
188
00:08:31,120 –> 00:08:33,200
ما هیچ فایلی ذخیره شده در
189
00:08:33,200 –> 00:08:35,440
dir نداریم، بنابراین
190
00:08:35,440 –> 00:08:38,399
یک بار دیگر یک لیست خالی داریم، بنابراین
191
00:08:38,399 –> 00:08:41,919
واضح است که os.walk از ساختار درختی پیروی می
192
00:08:41,919 –> 00:08:45,040
کند. در ابتدا
193
00:08:45,040 –> 00:08:47,839
محتویات دایرکتوری فعلی یا
194
00:08:47,839 –> 00:08:50,000
دایرکتوری را که مسیر را برای آن مشخص کرده ایم چاپ می کند،
195
00:08:50,000 –> 00:08:51,120
196
00:08:51,120 –> 00:08:53,360
سپس
197
00:08:53,360 –> 00:08:55,920
تمام محتویات داخل
198
00:08:55,920 –> 00:08:58,399
دایرکتوری های فرعی در دایرکتوری فعلی را نیز لیست می
199
00:08:58,399 –> 00:09:00,800
کند، پس از اتمام کار، حالا
200
00:09:00,800 –> 00:09:03,440
بیایید ادامه دهیم و فقط استخراج کنیم.
201
00:09:03,440 –> 00:09:06,480
برای انجام
202
00:09:06,480 –> 00:09:08,640
این کار باید
203
00:09:08,640 –> 00:09:11,600
سه متغیر را در حلقه for خود مشخص کنیم،
204
00:09:11,600 –> 00:09:14,160
اولی نام
205
00:09:14,160 –> 00:09:16,800
دایرکتوری ریشه را ذخیره می کند، سپس
206
00:09:16,800 –> 00:09:20,000
نام زیر شاخه ها را ذخیره می کند و در نهایت
207
00:09:20,000 –> 00:09:22,959
تمام فایل های موجود در
208
00:09:22,959 –> 00:09:25,360
جریان فعلی را ذخیره می کند. دایرکتوری کاری، بنابراین
209
00:09:25,360 –> 00:09:28,800
این فایل لیستی متشکل از
210
00:09:28,800 –> 00:09:31,120
همه فایلهای موجود در فهرست کاری فعلی من را ذخیره
211
00:09:31,120 –> 00:09:34,399
میکند، حالا بیایید بررسی کنیم که
212
00:09:34,399 –> 00:09:37,360
فایلها را چاپ کنیم
213
00:09:37,360 –> 00:09:40,080
و به آنجا میرویم، همانطور که میبینید
214
00:09:40,080 –> 00:09:43,360
اکنون همه فایلهای موجود در فهرست کاری فعلی من را داریم.
215
00:09:43,360 –> 00:09:45,760
شما
216
00:09:45,760 –> 00:09:48,959
می توانید این کار را انجام دهید این است که به سادگی ادامه دهید و
217
00:09:48,959 –> 00:09:51,680
در تمام فایل ها با استفاده از حلقه
218
00:09:51,680 –> 00:09:55,200
for و برای i در فایل ها تکرار کنید و سپس
219
00:09:55,200 –> 00:09:57,839
فایل ها یا نام فایل ها را چاپ کنید. بیایید
220
00:09:57,839 –> 00:09:59,200
یکی یکی
221
00:09:59,200 –> 00:10:00,959
این را اجرا کنیم
222
00:10:00,959 –> 00:10:03,279
و به آنجا می رویم، همانطور که می بینید که اکنون
223
00:10:03,279 –> 00:10:06,640
ما همه فایل های فهرست شده را داریم
224
00:10:06,640 –> 00:10:08,399
که در
225
00:10:08,399 –> 00:10:11,120
فهرست کاری فعلی ما وجود دارند، اگر
226
00:10:11,120 –> 00:10:14,800
فایلی در dir وجود داشت، حتی در آن صورت آن فایل زیر خط زیر علامت گذاری
227
00:10:14,800 –> 00:10:16,880
کنید. در
228
00:10:16,880 –> 00:10:20,000
اینجا به خوبی چاپ شده اند ما اکنون
229
00:10:20,000 –> 00:10:23,680
همه فایل ها را لیست کرده ایم وظیفه بعدی ما این است که
230
00:10:23,680 –> 00:10:26,240
فقط فایل های متنی را فیلتر کنیم که فایل
231
00:10:26,240 –> 00:10:29,120
هایی هستند که پسوند dot txt دارند و یک بار
232
00:10:29,120 –> 00:10:32,240
دیگر برای این کار از انتهای خود با روشی استفاده می کنیم
233
00:10:32,240 –> 00:10:35,120
که از پایتون می خواهد لیست کند.
234
00:10:35,120 –> 00:10:37,600
فقط آن دسته از فایلهایی که
235
00:10:37,