Chào mừng trở lại.
Nó thế nào?
Nó có khó không?
Tôi hy vọng bạn không ghét tôi vì đã làm cho nó hơi khó khăn, nhưng nó sẽ là một điều tốt.
Và hãy nhớ rằng, nếu bạn không nhận được nó ngay lập tức, đó không phải là vấn đề lớn.
Đây là cách chúng ta học.
Vì vậy, hãy làm cho điều này lớn hơn một chút.
Của bạn đây.
Và bắt đầu với bước đầu tiên của chúng ta, đó là lấy hai đối số mà chúng ta sẽ phải sử
dụng.
Vì vậy, làm thế nào chúng ta có thể làm điều này?
Điều đầu tiên chúng ta sẽ làm là giả sử đường dẫn, đó là đường dẫn đầu tiên của hình ảnh của chúng ta.
Hoặc chúng ta hãy chỉ cần gọi nó.
Hình ảnh.
Thư mục.
Và thư mục hình ảnh này sẽ sử dụng cis dot arc v là đối số và hãy nhớ arc v là đây là
cái đầu tiên là tệp python.
Đây là thứ hai và đây là thứ ba.
Cách thức hoạt động của lập trình, chúng ta bắt đầu với số 0, sau đó là một, sau đó là hai.
Vậy chúng ta sẽ nói gì?
V của chúng ta có ở đây không?
Và sau đó cho cái thứ hai, đầu ra là gì?
Thư mục.
Nó sẽ là vòng cung sáu chấm v.
Hai.
Vì vậy, tôi luôn thích thử nghiệm những gì chúng tôi đã làm bởi vì chúng tôi muốn đảm bảo rằng các giả định của chúng tôi là đúng.
Vì vậy, chúng ta hãy chỉ in hình ảnh.
Thư mục và thư mục đầu ra.
Và hãy chạy tệp này.
Được rồi, nhìn này.
Chúng tôi nhận được pokédex và mới.
Có vẻ như điều này đang hoạt động.
Đáng kinh ngạc.
Vì vậy, chúng tôi đã làm nhiệm vụ đầu tiên.
Còn cái thứ hai thì sao?
Cách thứ hai là kiểm tra xem thư mục mới này có tồn tại hay không.
Nếu không, chúng ta cần tạo nó để chúng ta có thể sử dụng nó vào đây để đưa hình ảnh vào.
Vì vậy, một lần nữa, điều này nghe giống như một câu lệnh if.
Vì vậy, tôi sẽ nói nếu.
Và sau đó kiểm tra xem thư mục có tồn tại hay không.
Vì vậy, cách chúng ta có thể làm điều đó là sử dụng mô-đun OSS.
Bây giờ cũng có mô-đun lib đường dẫn mà bạn có thể sử dụng.
Nó hoàn toàn phụ thuộc vào bạn.
Bây giờ với tỷ lệ cược.
Những gì chúng ta có thể làm là nói rằng dấu chấm đường dẫn của o tồn tại.
Và điều này chỉ để kiểm tra xem, cái này có tồn tại không?
Vì vậy, tôi sẽ nói thư mục đầu ra.
Điều này có tồn tại không?
Vì vậy, chúng ta hãy chỉ xem đầu ra của điều này là gì.
Vì vậy, trước khi tôi thực hiện lại câu lệnh if, tôi thích kiểm tra mã của mình, vì vậy tôi sẽ nói.
Nếu tồn tại đường đi của O.
Hoặc xin lỗi.
Thay vì nếu chúng ta muốn in, hãy chạy điều này.
Và chúng tôi nhận được sai.
Tại sao nó sai?
Bởi vì nó không tồn tại.
Vì vậy, để câu lệnh if của chúng tôi hoạt động, chúng tôi thực sự phải làm điều này.
Chúng tôi phải nói nếu.
Không phải vì chúng ta muốn làm điều ngược lại.
Vì vậy, nếu điều này không tồn tại, thì chúng tôi muốn chuyển đổi điều này thành true để chúng tôi có thể làm điều gì đó
trong khối này, đó là tạo thư mục.
Vì vậy, làm thế nào chúng ta có thể làm điều đó?
Một lần nữa, chúng tôi sử dụng mô-đun OSS và chúng tôi sử dụng phương thức tạo thư mục hoặc tạo thư mục và chúng tôi chỉ cung cấp cho
nó thư mục đầu ra thư mục.
Vì vậy, một lần nữa, hãy kiểm tra mã của chúng tôi.
Và nếu tôi chạy cái này.
Nhìn kìa.
Chúng tôi có thư mục mới.
Đáng kinh ngạc.
Và theo cách này, nếu tôi chạy lại mã này, chúng tôi thấy rằng chúng tôi không tạo một thư mục khác bởi vì, chúng tôi
chỉ đang kiểm tra điều này.
Và bởi vì thư mục này đã tồn tại ngay bây giờ, chúng tôi sẽ không sao chép và tạo một thư mục khác.
Đáng kinh ngạc.
Vì vậy, từng bước một, chúng tôi đang tiến rất nhanh.
Và một lần nữa, bạn có thể đang tự hỏi mình, giữ lấy, Andre.
Tôi chưa bao giờ học về Make Ders.
Làm thế nào để làm điều đó?
Và một lần nữa, đây là điều mà bạn chỉ cần thực hành khi bạn tra cứu những gì mô hình hoạt động và bạn Google xung quanh
và đây là cách bạn tìm ra mọi thứ.
Không ai có những thứ được ghi nhớ như một lập trình viên.
Đừng ghét tôi.
Tôi chỉ giúp bạn tập cơ đó.
Được rồi, phần cuối cùng.
Phần cuối cùng là lặp qua pokédex, lấy từng hình ảnh và chuyển đổi nó và lưu nó vào thư mục mới.
Vì vậy, làm thế nào chúng ta có thể làm điều đó?
Chà, chúng ta thực hiện một vòng lặp for và chúng ta sẽ nói tên tệp trong và sau đó một lần nữa chúng ta sẽ sử dụng thư mục danh sách dấu chấm HĐH.
Và đây sẽ là các mục trong thư mục.
Vì vậy, với list dir, những gì chúng ta có thể làm là chỉ cần cung cấp cho nó thư mục hình ảnh.
Và ở đây chúng ta có từng đường dẫn tệp này.
Bây giờ ở đây tôi có thể nói hình ảnh bằng dấu chấm hình ảnh mở.
Và chúng ta nên làm gì ở đây?
Bởi vì hãy nhớ rằng, chúng ta sẽ mở cái này mọi lúc, phải không?
Và tệp JPEG sang PNG này nằm ngoài các thư mục này.
Vì vậy, bằng cách nào đó chúng ta cần phải mở.
Những hình ảnh này tại pokédex.
Nhưng hãy nhớ rằng, chúng ta muốn sử dụng bất kỳ dữ liệu đầu vào nào vì thư mục pokédex có thể không phải lúc nào cũng giống nhau.
Vì vậy, thay vì lấy thư mục Pokédex, chúng tôi sẽ chỉ sử dụng một chuỗi SW.
Và trong chuỗi này, tôi sẽ nói rằng chúng tôi muốn.
Hình ảnh.
Thư mục.
Điều này sẽ cung cấp cho chúng tôi dấu gạch chéo pokédex và dấu gạch chéo ở đây, bởi vì chúng tôi giả định rằng người dùng sẽ
nhập dấu gạch chéo, chúng tôi không cần phải đưa nó vào đây và sau đó đưa ra một chuỗi khác
sẽ là tệp.
Tên.
Chúng tôi lấy từ đây.
Vì vậy, bây giờ chúng ta mở những hình ảnh này, mỗi hình ảnh trong số họ, và sau đó chúng ta có thể chuyển đổi chúng, phải không?
Vì vậy, hãy chuyển đổi chúng bằng cách nói hình ảnh, dấu chấm lưu.
Và một lần nữa, chúng ta sẽ sử dụng chuỗi F và làm điều tương tự, nhưng lần này là cho thư mục đầu
ra.
Vì vậy, tôi sẽ nói.
Thư mục đầu ra.
Cung cấp cho nó.
Tên tệp.
Và sau đó dấu phẩy và sau đó chuyển đổi nó thành Pag.
Và chỉ để nói vui thôi, hãy nói in tất cả đã xong để cho chúng tôi biết rằng mỗi khi một hình ảnh được xử lý, chúng tôi
sẽ in tất cả.
Bây giờ chúng ta sẽ thử và chạy mã này.
Thực ra có một lỗi trong đoạn mã này mà chúng tôi sẽ phải sửa, nhưng hãy xem điều gì sẽ xảy ra.
Vì vậy, tôi sẽ chạy cái này.
Và chúng ta bắt đầu.
Tất cả chúng ta đã hoàn thành, tất cả đã xong, tất cả đã xong, tất cả đã xong.
Bốn hình ảnh và có vẻ như nó đã hoạt động đúng.
Chúng ta hãy có một cái nhìn.
Nếu tôi đi đến thư mục mới ở đây.
Hừ!
Có vẻ như những bức ảnh này vẫn ở dạng JPEG.
Thật là lạ.
Tại sao lại như vậy?
Tôi nghĩ chúng ta nên chuyển đổi những thứ này.
Đúng.
Chà, điều gì sẽ xảy ra nếu bên trong phần lưu ở đây có dấu chấm, p và g?
Vì vậy, một lần nữa, hãy làm cho điều này nhỏ hơn một chút.
Vì vậy, chúng tôi sẽ nói lưu chúng tôi P&G ở định dạng tệp, P&G nếu tôi chạy điều này.
Được rồi.
Nhìn kìa.
Bây giờ chúng ta có những hình ảnh, nhưng.
Ồ, chúng tôi có.
Chấm jpeg, chấm trang.
Những gì đang xảy ra ở đây?
Vâng, chúng tôi phải làm sạch tên của chúng tôi.
Đúng.
Vì vậy, những gì chúng ta cần phải làm.
Là khi chúng ta lấy hình ảnh mở ra.
Chúng ta cần xóa dấu chấm jpeg khỏi hình ảnh đó để có thể lưu nó dưới dạng p và g.
Vì vậy, làm thế nào chúng ta có thể làm điều đó?
Và đó là điều mà bạn có thể đã phải làm với Google, bởi vì thực sự có một công cụ hữu ích mà chúng tôi có thể
sử dụng với mô-đun hệ điều hành cho phép chúng tôi làm điều này.
Vì vậy, những gì chúng tôi có thể làm là chúng tôi có thể nói là sạch sẽ.
Đặt tên và chúng tôi sẽ nói con đường dấu chấm của O.
Văn bản tách dấu chấm.
Và những gì điều này sẽ làm là nó sẽ phân chia văn bản cho chúng ta.
Vì vậy, hãy để tôi chỉ cho bạn.
Tôi sẽ nói tên tệp.
Và ở đây, tôi sẽ không tiết kiệm bất cứ thứ gì.
Tôi sẽ bình luận điều này ra.
Và tôi chỉ muốn in tên sạch sẽ.
Vì vậy, chúng ta hãy chỉ xem những gì văn bản tách làm.
Tôi sẽ giải quyết vấn đề này và chạy.
Lại.
Ồ, và tôi có thêm một ly trà ở đây.
Nó phải được tách văn bản.
Vì vậy, chúng ta hãy nói điều đó một lần nữa.
Và nhìn vào đó.
Nó cung cấp cho tôi một bộ mã phân tách văn bản giữa tên và phần mở rộng.
Điều đó cực kỳ hữu ích.
Vì vậy, chúng ta chỉ cần giữ phần đầu tiên này và chúng ta không quan tâm đến phần này, vì vậy chúng ta có
thể truy cập tên sạch bằng cách nói số không.
Vì vậy, mục đầu tiên trong bộ tuple.
Vì vậy, bây giờ nếu tôi quay lại điều này và thay vì cuối cùng, chúng tôi sử dụng tên sạch để lưu hình ảnh.
Điều này sẽ hoạt động.
Vì vậy, hãy để tôi loại bỏ một số ý kiến ở đây.
Và một điều tôi muốn làm là tôi muốn xóa tất cả những hình ảnh này đi vì chúng tôi không cần chúng nữa.
Lý tưởng nhất là chúng tôi chỉ có hình ảnh P&G, vì vậy tôi sẽ thực sự xóa thư mục mới này.
Vì vậy, giả sử xóa.
Được chứ.
Bạn có thể xóa nó.
Của bạn đây.
Tôi sẽ tiết kiệm.
Và chúng ta hãy xem nếu điều này hoạt động ngay bây giờ.
Hãy chạy lệnh của chúng tôi.
Tất cả đã được làm xong.
Nếu chúng ta quay trở lại.
Này, kiểm tra xem.
Tất cả hình ảnh của chúng tôi bây giờ là PNG.
Và bạn đã thấy nó nhanh như thế nào.
Chúng tôi vừa tạo bộ chuyển đổi JPEG sang PNG đầu tiên của mình.
Tệp này hiện có thể chuyển đổi miễn là bạn cung cấp cho nó một thư mục với.
Bạn có thể cung cấp cho nó hàng trăm hình ảnh, hàng nghìn hình ảnh JPEG và nó sẽ chuyển chúng sang PNG.
Nếu bạn muốn, bạn thậm chí có thể thay đổi kích thước của chúng.
Bạn thậm chí có thể thêm bộ lọc hình ảnh cho chúng.
Và chúng tôi có thể làm tất cả điều đó với một vài dòng mã Python và một số thư viện hữu ích.
Rất, rất tuyệt.
Bây giờ chúng ta chỉ mới làm sơ qua bề mặt ở đây, nhưng bạn đang bắt đầu thấy sức mạnh của Python.
Chúng ta có một vấn đề.
Và vấn đề này có thể được giải quyết bằng Python và các thư viện của nó.
Và chỉ bằng cách thực hiện một chút Google, một thử nghiệm và lỗi nhỏ và gỡ lỗi mã của chúng tôi, chúng tôi đã tạo ra một cái gì
đó có khả năng tiết kiệm rất nhiều thời gian cho chúng tôi.
Thay vì làm điều này một cách thủ công.
Làm tốt lắm nếu bạn đã làm được điều này.
Đây là dự án xử lý hình ảnh đầu tiên của chúng tôi.
Tôi hy vọng bạn vui mừng.
Vẫn còn rất nhiều thứ khác cần giải quyết.
Nhưng hãy tự vỗ về mình và hẹn gặp lại bạn trong video tiếp theo.
Tạm biệt.