Review Làm thế nào để đọc qua các tập tin trong một thư mục python
Mẹo Hướng dẫn Làm thế nào để đọc qua những tập tin trong một thư mục python 2022
Hoàng Duy Minh đang tìm kiếm từ khóa Làm thế nào để đọc qua những tập tin trong một thư mục python được Update vào lúc : 2022-12-15 23:02:05 . Với phương châm chia sẻ Mẹo về trong nội dung bài viết một cách Chi Tiết Mới Nhất. Nếu sau khi Read Post vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Mình lý giải và hướng dẫn lại nha.Các mô-đun được mô tả trong chương này xử lý những tệp và thư mục trên đĩa. Ví dụ: có những mô-đun để đọc thuộc tính của tệp, thao tác đường dẫn theo cách di động và tạo tệp tạm thời. Danh sách đầy đủ những mô-đun trong chương này là
Nội dung chính Show- Dấu gạch chéo ngược trên Windows và Dấu gạch chéo ngược trên OS X và LinuxThư mục thao tác hiện tạituyệt đối so với. Đường dẫn tương đốiTạo thư mục mới với os. makedirs()Xử lý đường dẫn tuyệt đối và tương đốiTìm kích thước tệp và nội dung thư mụcKiểm tra tính hợp lệ của đường dẫnMở tệp bằng hàm open()Đọc nội dung của tập tinGhi vào tập tinBước 1. Lưu trữ tài liệu bài kiểm tra trong từ điểnBước 2. Tạo tệp thắc mắc và xáo trộn thứ tự câu hỏiBước 3. Tạo tùy chọn trả lờiBước 4. Viết nội dung cho những tệp chính của thắc mắc và câu trả lờiBước 1. Nhận xét và Thiết lập KệBước 2. Lưu nội dung Clipboard bằng từ khóaBước 3. Liệt kê từ khóa và tải nội dung của từ khóa
- >>> import os
>>> os.makedirs('C:\delicious\walnut\waffles')80 — Đường dẫn khối mạng lưới hệ thống tệp hướng đối tượng
Xem thêm
mô-đunGiao diện hệ điều hành, gồm có những hiệu suất cao thao tác với tệp ở mức thấp hơn Python
mô-đunThư viện I/O tích hợp của Python, gồm có cả lớp trừu tượng và một số trong những lớp rõ ràng như tệp I/O
Biến là một cách tốt để tàng trữ tài liệu trong khi chương trình của bạn đang chạy, nhưng nếu bạn muốn tài liệu của tớ tồn tại trong cả sau khi chương trình của bạn kết thúc, bạn cần lưu nó vào một tệp. Bạn hoàn toàn có thể coi nội dung của tệp dưới dạng một giá trị chuỗi đơn lẻ, hoàn toàn có thể có kích thước hàng gigabyte. Trong chương này, bạn sẽ học cách sử dụng Python để tạo, đọc và lưu tệp trên ổ cứng
Tệp và Đường dẫn Tệp
Một tệp có hai thuộc tính chính. a tên tệp (thường được viết bằng một từ) và đường dẫn . Đường dẫn chỉ định vị trí của tệp trên máy tính. Ví dụ: có một tệp trên máy tính xách tay Windows 7 của tôi mang tên tệp project. docx trong đường dẫn C. UsersasweigartDocuments . Phần tên tệp sau dấu chấm ở đầu cuối được gọi là phần mở rộng của tệp và cho bạn biết loại tệp. dự án công trình bất Động sản. docx là tài liệu Word và Người dùng , asweigart, and Documents all refer to folders (also called directories). Folders can contain files and other folders. For example, dự án công trình bất Động sản. docx nằm trong thư mục Tài liệu , nằm trong asweigartasweigart . hiển thị tổ chức thư mục này. asweigart . hiển thị tổ chức thư mục này. asweigart . hiển thị tổ chức thư mục này. thư mục, which is inside the Users thư mục. shows this thư mục organization.
Hình 8-1. Một tệp trong khối mạng lưới hệ thống phân cấp những thư mục
Cái C. một phần của đường dẫn là thư mục gốc , chứa tất cả những thư mục khác. Trên Windows, thư mục gốc mang tên C. và còn được gọi là C. lái xe . Trên OS X và Linux, thư mục gốc là / . Trong cuốn sách này, tôi sẽ sử dụng thư mục gốc kiểu Windows, C. . Nếu bạn đang nhập những ví dụ trình bao tương tác trên OS X hoặc Linux, hãy nhập
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')0 để thay thế.Ổ ổ tương hỗ update, ví dụ như ổ đĩa DVD hoặc ổ USB, sẽ xuất hiện rất khác nhau trên những hệ điều hành rất khác nhau. Trên Windows, chúng xuất hiện dưới dạng ổ đĩa gốc mới, có ký tự, ví dụ như D. hoặc E. . Trên OS X, chúng xuất hiện dưới dạng những thư mục mới trong thư mục /Tập . Trên Linux, chúng xuất hiện dưới dạng những thư mục mới trong thư mục /mnt (“mount”). Cũng lưu ý rằng tuy nhiên tên thư mục và tên tệp không phân biệt chữ hoa chữ thường trên Windows và OS X, nhưng chúng lại phân biệt chữ hoa chữ thường trên Linux.
Dấu gạch chéo ngược trên Windows và Dấu gạch chéo ngược trên OS X và Linux
Trên Windows, đường dẫn được viết bằng dấu gạch chéo ngược ( ) làm dấu phân cách Một trong những tên thư mục. Tuy nhiên, OS X và Linux sử dụng dấu gạch chéo lên ( / ) làm dấu phân cách đường dẫn của chúng. Nếu bạn muốn chương trình của tớ hoạt động và sinh hoạt giải trí trên tất cả những hệ điều hành, bạn sẽ phải viết tập lệnh Python để xử lý cả hai trường hợp.
May mắn thay, điều này rất đơn giản để thực hiện với hàm
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')1. Nếu bạn chuyển cho nó những giá trị chuỗi của tên tệp và thư mục riêng lẻ trong đường dẫn của tớ, thì >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')1 sẽ trả về một chuỗi có đường dẫn tệp bằng phương pháp sử dụng dấu tách đường dẫn đúng chuẩn. Nhập thông tin sau vào vỏ tương tác>>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam'Tôi đang chạy những ví dụ shell tương tác này trên Windows, vì vậy,
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')3 đã trả về >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')4. (Lưu ý rằng những dấu gạch chéo ngược được nhân đôi vì mỗi dấu gạch chéo ngược cần phải thoát bởi một ký tự gạch chéo ngược khác. ) Nếu tôi đã gọi hàm này trên OS X hoặc Linux, chuỗi sẽ là >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')5hệ điều hành. đường dẫn. hàm join() rất hữu ích nếu bạn cần tạo chuỗi cho tên tệp. Các chuỗi này sẽ được chuyển đến một số trong những hiệu suất cao liên quan đến tệp được ra mắt trong chương này. Ví dụ: ví dụ sau nối tên từ list tên tệp vào cuối tên thư mục
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docxThư mục thao tác hiện tại
Mọi chương trình chạy trên máy tính của bạn đều có thư mục thao tác hiện tại hoặc cwd. Any filenames or paths that do not begin with the root thư mục are assumed to be under the current working directory. You can get the current working directory as a string value with the
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')6 function and change it with >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')7. Enter the following into the interactive shell:>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')0Ở đây, thư mục thao tác hiện tại được đặt thành C. Python34 , vì vậy tên tệp dự án công trình bất Động sản. docx đề cập đến C. Python34dự án công trình bất Động sản. docx . Khi chúng tôi thay đổi thư mục thao tác hiện tại thành C. Windows , dự án công trình bất Động sản. docx được hiểu là C. Windowsdự án công trình bất Động sản. docx .
Python sẽ hiển thị lỗi nếu bạn cố thay đổi thư mục không tồn tại
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')1Ghi chú
Mặc dù thư mục là tên gọi thư mục tân tiến hơn, nhưng hãy lưu ý rằng thư mục thao tác hiện tại (hoặc chỉ . ) is the standard term, not current working thư mục.
tuyệt đối so với. Đường dẫn tương đối
Có hai phương pháp để chỉ định đường dẫn tệp
Một đường dẫn tuyệt đối , luôn khởi đầu bằng thư mục gốc
A đường dẫn tương đối , liên quan đến thư mục thao tác hiện tại của chương trình
Ngoài ra còn tồn tại chấm (
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')8) và chấm-chấm (>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')9) folders. These are not real folders but special names that can be used in a path. A single period (“dot”) for a thư mục name is shorthand for “this directory.” Two periods (“dot-dot”) means “the parent thư mục.”là một ví dụ về một số trong những thư mục và tệp. Khi thư mục thao tác hiện tại được đặt thành C. bacon , những đường dẫn tương đối cho những thư mục và tệp khác được đặt như trong hình.
Hình 8-2. Đường dẫn tương đối cho những thư mục và tệp trong thư mục thao tác C. bacon
Cái . ở đầu đường dẫn tương đối là tùy chọn. Ví dụ: . Thư rác. txt và thư rác. txt đề cập đến cùng một tệp.
Tạo thư mục mới với os. makedirs()
Các chương trình của bạn hoàn toàn có thể tạo những thư mục (directory) mới với hàm
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')40. Nhập thông tin sau vào vỏ tương tác>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')Điều này sẽ không riêng gì có tạo ra C. delicious nhưng cũng luôn có thể có thư mục walnut bên trong C. delicious và thư mục waffles bên trong C. ngonquả óc chó . Nghĩa là,
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')40 sẽ tạo bất kỳ thư mục trung gian thiết yếu nào để đảm nói rằng đường dẫn đầy đủ tồn tại. hiển thị khối mạng lưới hệ thống phân cấp thư mục này.Hình 8-3. Kết quả của
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')42hệ điều hành. đường dẫn Mô-đun
Mô-đun
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')43 chứa nhiều hiệu suất cao hữu ích liên quan đến tên tệp và đường dẫn tệp. Chẳng hạn, bạn đã sử dụng >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')1 để xây dựng đường dẫn theo cách sẽ hoạt động và sinh hoạt giải trí trên mọi hệ điều hành. Vì >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')43 là một mô-đun bên trong mô-đun >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')46, nên bạn hoàn toàn có thể nhập mô-đun đó bằng phương pháp chạy >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')47. Bất cứ lúc nào chương trình của bạn cần thao tác với tệp, thư mục hoặc đường dẫn tệp, bạn hoàn toàn có thể tham khảo những ví dụ ngắn trong phần này. Tài liệu đầy đủ cho mô-đun >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')43 có trên trang web Python tại . // tài liệu. con trăn. org/3/library/os. đường dẫn. html .Ghi chú
Hầu hết những ví dụ tiếp theo trong phần này sẽ yêu cầu mô-đun
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')46 , vì vậy hãy nhớ nhập mô-đun đó vào đầu bất kỳ tập lệnh nào của bạn. . Nếu không, bạn sẽ nhận được >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')50 thông báo lỗi.Xử lý đường dẫn tuyệt đối và tương đối
Mô-đun
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')43 đáp ứng những hàm để trả về đường dẫn tuyệt đối của đường dẫn tương đối và để kiểm tra xem đường dẫn đã cho liệu có phải là đường dẫn tuyệt đối hay là khôngGọi
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')52 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')54 sẽ trả về một chuỗi đường dẫn tuyệt đối của đối số. Đây là một cách thuận tiện và đơn giản để quy đổi một đường dẫn tương đối thành một đường dẫn tuyệt đối.Gọi
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')55 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')54 sẽ trả về >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')58 nếu đối số là đường dẫn tuyệt đối và >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')59 nếu đó là đường dẫn tương đối.Gọi
>>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam'50 >>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam'51 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')54 sẽ trả về một chuỗi đường dẫn tương đối từ >>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam'53 path to >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53. If ______353 không được đáp ứng, thư mục thao tác hiện tại được sử dụng làm đường dẫn khởi đầu.Hãy thử những hiệu suất cao này trong trình bao tương tác
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')4Vì C. Python34 là thư mục thao tác khi
>>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam'56 được gọi, thư mục “một dấu chấm” đại diện cho đường dẫn tuyệt đối >>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam'57.Ghi chú
Vì khối mạng lưới hệ thống của bạn hoàn toàn có thể chứa những tệp và thư mục khác với khối mạng lưới hệ thống của tôi, nên bạn sẽ không thể theo dõi đúng chuẩn mọi ví dụ trong chương này. Tuy nhiên, hãy nỗ lực tuân theo bằng phương pháp sử dụng những thư mục tồn tại trên máy tính của bạn
Nhập những cuộc gọi sau tới
>>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam'58 vào trình bao tương tác>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')5Gọi
>>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam'59 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')54 sẽ trả về một chuỗi gồm mọi thứ xuất hiện trước dấu gạch chéo ở đầu cuối trong đối số >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53. Gọi >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')03 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')54 sẽ trả về một chuỗi chứa mọi thứ xuất hiện sau dấu gạch chéo ở đầu cuối trong đối số >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53. Tên thư mục và tên cơ sở của một đường dẫn được phác thảo trong.Hình 8-4. Tên cơ sở theo sau dấu gạch chéo ở đầu cuối trong một đường dẫn và giống với tên tệp. Tên thư mục là mọi thứ trước dấu gạch chéo ở đầu cuối
Ví dụ: nhập thông tin sau vào trình bao tương tác
>>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam'5Nếu bạn cần tên thư mục và tên cơ sở của đường dẫn cùng nhau, bạn chỉ việc gọi
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')07 để nhận giá trị bộ tài liệu với hai chuỗi này, như vậy>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')0Lưu ý rằng bạn hoàn toàn có thể tạo cùng một bộ bằng phương pháp gọi
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')08 và >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')09 và đặt những giá trị trả về của chúng vào một bộ>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')9Nhưng
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')07 là một lối tắt hay nếu bạn cần cả hai giá trịNgoài ra, lưu ý rằng
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')07 không không lấy đường dẫn tệp và trả về list những chuỗi của từng thư mục. Đối với điều đó, hãy sử dụng phương pháp chuỗi >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')92 và phân tách trên chuỗi trong >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')93. Nhớ lại trước đó rằng biến >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')93 được đặt thành dấu gạch chéo phân tách thư mục đúng chuẩn cho máy tính đang chạy chương trình.Ví dụ: nhập thông tin sau vào trình bao tương tác
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx0Trên những khối mạng lưới hệ thống OS X và Linux, sẽ có một chuỗi trống ở đầu list được trả về
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx1Phương thức chuỗi
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')92 sẽ hoạt động và sinh hoạt giải trí để trả về list từng phần của đường dẫn. Nó sẽ hoạt động và sinh hoạt giải trí trên mọi hệ điều hành nếu bạn vượt qua nó >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')96Tìm kích thước tệp và nội dung thư mục
Khi bạn có cách xử lý đường dẫn tệp, bạn hoàn toàn có thể khởi đầu thu thập thông tin về những tệp và thư mục rõ ràng. Mô-đun
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')43 đáp ứng những hàm để tìm kích thước của tệp theo byte cũng như những tệp và thư mục bên trong một thư mục nhất địnhGọi
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')98 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')54 sẽ trả về kích thước tính bằng byte của tệp trong >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53 argument.Gọi
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx02 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')54 sẽ trả về list những chuỗi tên tệp cho từng tệp trong >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')46, không phải >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')43. ) argument. (Note that this function is in the >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')46 module, not >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')43.)Đây là những gì tôi nhận được khi thử những hiệu suất cao này trong trình bao tương tác
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx2Như bạn thấy, calc. exe trên máy tính của tôi có kích thước 776.192 byte và tôi có rất nhiều tệp trong C. Windowssystem32 . Nếu tôi muốn tìm tổng kích thước của tất cả những tệp trong thư mục này, tôi hoàn toàn có thể sử dụng đồng thời
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx08 và >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx09. >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx3Khi tôi lặp qua từng tên tệp trong C. WindowsSystem32 , biến
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx10 được tăng theo kích thước của mỗi tệp. Lưu ý khi tôi gọi >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx08, tôi sử dụng >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')1 để nối tên thư mục với tên tệp hiện tại. Số nguyên mà >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx08 trả về được thêm vào giá trị của >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx10. Sau khi lặp qua tất cả những tệp, tôi in >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx10 để xem tổng kích thước của C. Thư mục WindowsSystem32 .Kiểm tra tính hợp lệ của đường dẫn
Nhiều hàm Python sẽ gặp lỗi nếu bạn đáp ứng cho chúng một đường dẫn không tồn tại. Mô-đun
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')43 đáp ứng những hiệu suất cao để kiểm tra xem một đường dẫn đã cho có tồn tại hay là không và liệu đó liệu có phải là tệp hoặc thư mục hay là khôngGọi
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx17 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')54 sẽ trả về >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')58 nếu tệp hoặc thư mục được tham chiếu trong đối số tồn tại và sẽ trả về >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')59 nếu nó không tồn tại.Gọi
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx22 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')54 sẽ trả về >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')58 nếu đối số đường dẫn tồn tại và là một tệp và sẽ trả về >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')59 nếu không.Gọi
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx27 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')53 >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')54 sẽ trả về >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')58 nếu đối số đường dẫn tồn tại và là một thư mục và sẽ trả về >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')59 nếu không.Đây là những gì tôi nhận được khi thử những hiệu suất cao này trong trình bao tương tác
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx4Bạn hoàn toàn có thể xác định xem hiện có ổ đĩa DVD hoặc ổ đĩa flash được gắn vào máy tính hay là không bằng phương pháp kiểm tra bằng hiệu suất cao
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx32. Chẳng hạn, nếu tôi muốn kiểm tra ổ đĩa flash có ổ đĩa mang tên D. trên máy tính Windows của tớ, tôi hoàn toàn có thể làm điều đó bằng phương pháp sau. >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx5Ối. Có vẻ như tôi đã quên cắm ổ đĩa flash của tớ
Quá trình đọc/ghi tệp
Sau khi bạn cảm thấy thoải mái khi thao tác với những thư mục và đường dẫn tương đối, bạn sẽ hoàn toàn có thể chỉ định vị trí của tệp để đọc và ghi. Các hiệu suất cao được đề cập trong một số trong những phần tiếp theo sẽ áp dụng cho những tệp văn bản gốc. Tệp văn bản gốc chỉ chứa những ký tự văn bản cơ bản và không gồm có thông tin về phông chữ, kích thước hoặc sắc tố. Các tệp văn bản có . txt hoặc tệp tập lệnh Python với . phần mở rộng py là những ví dụ về tệp văn bản gốc. Chúng hoàn toàn có thể được mở bằng Windows Notepad hoặc ứng dụng TextEdit của OS X. Các chương trình của bạn hoàn toàn có thể thuận tiện và đơn giản đọc nội dung của những tệp văn bản gốc và coi chúng như một giá trị chuỗi thông thường.
Tệp nhị phân là tất cả nhiều chủng loại tệp khác, ví dụ như tài liệu soạn thảo văn bản, PDF, hình ảnh, bảng tính và chương trình thực thi. Nếu bạn mở một tệp nhị phân trong Notepad hoặc TextEdit, nó sẽ in như bị xáo trộn vô nghĩa, in như trong.
Hình 8-5. Chương trình Windows
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx33 được mở trong NotepadVì mọi loại tệp nhị phân rất khác nhau phải được xử lý theo cách riêng của nó, cuốn sách này sẽ không đi sâu vào việc đọc và ghi những tệp nhị phân thô một cách trực tiếp. May mắn thay, nhiều mô-đun giúp thao tác với những tệp nhị phân thuận tiện và đơn giản hơn—bạn sẽ mày mò một trong số chúng, mô-đun
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx34, ở phần sau của chương nàyCó ba bước để đọc hoặc ghi tệp trong Python
Gọi hàm
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35 để trả về một đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36Gọi phương thức
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx37 hoặc >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx38 trên đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36Đóng tệp bằng phương pháp gọi phương thức
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx40 trên đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36Mở tệp bằng hàm open()
Để mở một tệp bằng hàm
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35, bạn chuyển cho nó một đường dẫn chuỗi cho biết thêm thêm tệp bạn muốn mở; . Hàm >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35 trả về một đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36Hãy thử bằng phương pháp tạo một tệp văn bản mang tên xin chào. txt bằng Notepad hoặc TextEdit. Nhập ______745 làm nội dung của tệp văn bản này và lưu nó vào thư mục nhà người tiêu dùng của bạn. Sau đó, nếu bạn đang sử dụng Windows, hãy nhập thông tin sau vào trình bao tương tác.
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx6Nếu bạn đang sử dụng OS X, hãy nhập thông tin sau vào trình bao tương tác
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx7Đảm bảo thay thế >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx46 bằng tên người tiêu dùng máy tính của bạn. Ví dụ: tên người tiêu dùng của tôi là asweigart , vì vậy tôi sẽ nhập
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx47 trên Windows.Cả hai lệnh này sẽ mở tệp ở chính sách “đọc văn bản gốc” hoặc viết tắt là chính sách đọc . Khi tệp được mở ở chính sách đọc, Python được cho phép bạn chỉ đọc tài liệu từ tệp; . Chế độ đọc là chính sách mặc định cho những tệp bạn mở bằng Python. Nhưng nếu bạn không thích nhờ vào những giá trị mặc định của Python, bạn hoàn toàn có thể chỉ định rõ ràng chính sách bằng phương pháp chuyển giá trị chuỗi
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx48 làm đối số thứ hai cho >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35. Vì vậy, >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx50 và >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx51 làm điều tương tự.Cuộc gọi đến
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35 trả về một đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36. Một đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36 đại diện cho một tệp trên máy tính của bạn; . Trong ví dụ trước, bạn đã tàng trữ đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36 trong biến >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx56. Bây giờ, bất kể lúc nào bạn muốn đọc hoặc ghi vào tệp, bạn hoàn toàn có thể làm như vậy bằng phương pháp gọi những phương thức trên đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36 trong >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx56Đọc nội dung của tập tin
Bây giờ bạn đã có đối tượng
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36, bạn hoàn toàn có thể khởi đầu đọc từ đối tượng đó. Nếu bạn muốn đọc toàn bộ nội dung của tệp dưới dạng giá trị chuỗi, hãy sử dụng phương thức >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx37 của đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36. Hãy tiếp tục với xin chào. txt đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36 mà bạn đã tàng trữ trong >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx56. Nhập thông tin sau vào vỏ tương tác. >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx8Nếu bạn coi nội dung của một tệp là một giá trị chuỗi lớn duy nhất, thì phương thức
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx37 sẽ trả về chuỗi được tàng trữ trong tệpNgoài ra, bạn hoàn toàn có thể sử dụng phương pháp
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx65 để lấy list những giá trị chuỗi từ tệp, một chuỗi cho từng dòng văn bản. Ví dụ: tạo một tệp mang tên sonnet29.txt in the same directory as hello.txt and write the following text in it:>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx9Đảm bảo phân tách bốn dòng bằng ngắt dòng. Sau đó nhập thông tin sau vào Shell tương tác
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')00Lưu ý rằng mỗi giá trị chuỗi kết thúc bằng một ký tự xuống dòng,
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx66, ngoại trừ dòng ở đầu cuối của tệp. Một list những chuỗi thường dễ thao tác hơn một giá trị chuỗi lớn duy nhấtGhi vào tập tin
Python được cho phép bạn ghi nội dung vào tệp theo cách tương tự như cách hàm
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx67 “ghi” chuỗi lên màn hình hiển thị. Tuy nhiên, bạn không thể ghi vào tệp mà bạn đã mở ở chính sách đọc. Thay vào đó, bạn cần mở nó ở chính sách “ghi văn bản gốc” hoặc chính sách “chắp thêm văn bản gốc” hoặc chính sách ghi và append mode for short.Chế độ ghi sẽ ghi đè lên tệp hiện có và khởi đầu lại từ đầu, in như khi bạn ghi đè lên một giá trị của biến bằng một giá trị mới. Vượt qua
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx68 làm đối số thứ hai cho >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35 để mở tệp ở chính sách ghi. Mặt khác, chính sách nối thêm sẽ nối văn bản vào cuối tệp hiện có. Bạn hoàn toàn có thể coi điều này in như việc thêm vào một list trong một biến, thay vì ghi đè hoàn toàn biến đó. Vượt qua >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx70 làm đối số thứ hai cho >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35 để mở tệp ở chính sách chắp thêmNếu tên tệp được chuyển đến
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35 không tồn tại, cả chính sách ghi và nối sẽ tạo một tệp mới, trống. Sau khi đọc hoặc ghi tệp, hãy gọi phương thức >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx40 trước khi mở lại tệpHãy đặt những khái niệm nó lại với nhau. Nhập thông tin sau vào vỏ tương tác
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')01Đầu tiên, tất cả chúng ta mở thịt xông khói. txt ở chính sách ghi. Vì không còn thịt xông khói. txt chưa, Python tạo một. Gọi
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx38 trên tệp đã mở và chuyển >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx38 đối số chuỗi >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx76 ghi chuỗi vào tệp và trả về số lượng ký tự đã viết, gồm có cả dòng mới. Sau đó, chúng tôi đóng tập tin.Để thêm văn bản vào nội dung hiện có của tệp thay vì thay thế chuỗi vừa viết, chúng tôi mở tệp ở chính sách chắp thêm. Chúng tôi viết
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx77 vào tệp và đóng nó. Cuối cùng, để in nội dung tệp ra màn hình hiển thị, chúng tôi mở tệp ở chính sách đọc mặc định, gọi >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx37, tàng trữ đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36 kết quả trong >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx80, đóng tệp và in >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx80Lưu ý rằng phương thức
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx38 không tự động thêm ký tự xuống dòng vào cuối chuỗi in như hàm >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx67. Bạn sẽ phải tự thêm nhân vật nàyLưu những biến với Mô-đun giá
Bạn hoàn toàn có thể lưu những biến trong chương trình Python của tớ vào những tệp kệ nhị phân bằng phương pháp sử dụng mô-đun
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx34. Bằng cách này, chương trình của bạn hoàn toàn có thể Phục hồi tài liệu cho những biến từ ổ cứng. Mô-đun >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx34 sẽ được cho phép bạn thêm những tính năng Lưu và Mở vào chương trình của tớ. Ví dụ: nếu bạn đã chạy một chương trình và nhập một số trong những setup thông số kỹ thuật, bạn hoàn toàn có thể lưu những setup đó vào tệp giá sách và sau đó yêu cầu chương trình tải chúng vào lần chạy tiếp theoNhập thông tin sau vào vỏ tương tác
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')02Để đọc và ghi tài liệu bằng mô-đun
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx34, trước tiên bạn nhập >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx34. Gọi >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx88 và đặt cho nó một tên tệp, sau đó tàng trữ giá trị giá được trả về trong một biến. Bạn hoàn toàn có thể thay đổi giá trị giá như thể nó là một từ điển. Khi bạn hoàn tất, hãy gọi >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx40 trên giá trị giá. Ở đây, giá trị hạn sử dụng của chúng tôi được tàng trữ trong >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx90. Chúng tôi tạo một list >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx91 và viết >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx92 để tàng trữ list trong >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx90 dưới dạng một giá trị được link với khóa >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx94 (in như trong từ điển). Sau đó, chúng tôi gọi >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx40 trên >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx90Sau khi chạy mã trước đó trên Windows, bạn sẽ thấy ba tệp mới trong thư mục thao tác hiện tại. tài liệu của tôi. bak , tài liệu của tôi. dat và tài liệu của tôi. thư mục . Trên OS X, chỉ một mydata duy nhất. tệp db sẽ được tạo.
Các tệp nhị phân này chứa tài liệu bạn đã tàng trữ trong giá sách của tớ. Định dạng của những tệp nhị phân này sẽ không quan trọng; . Mô-đun này giúp bạn không phải lo ngại về cách tàng trữ tài liệu của chương trình vào một tệp
Các chương trình của bạn hoàn toàn có thể sử dụng mô-đun
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx34 để sau này mở lại và truy xuất tài liệu từ những tệp giá này. Các giá trị giá tránh việc phải được mở ở chính sách đọc hoặc ghi—chúng hoàn toàn có thể thực hiện cả hai sau khi được mở. Nhập thông tin sau vào vỏ tương tác>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')03Ở đây, chúng tôi mở những tệp kệ để kiểm tra xem tài liệu của chúng tôi đã có được tàng trữ đúng chuẩn không. Nhập
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx99 trả về cùng một list mà chúng tôi đã tàng trữ trước đó, vì vậy chúng tôi biết rằng list được tàng trữ đúng chuẩn và chúng tôi gọi >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx40Cũng in như từ điển, những giá trị của giá có những phương thức
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')001 và >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')002 sẽ trả về những giá trị in như list của những khóa và giá trị trong giá. Vì những phương thức này trả về những giá trị dạng list thay vì list thực, bạn nên chuyển chúng đến hàm >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')003 để lấy chúng ở dạng list. Nhập thông tin sau vào vỏ tương tác>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')04Văn bản gốc rất hữu ích để tạo những tệp mà bạn sẽ đọc trong trình soạn thảo văn bản như Notepad hoặc TextEdit, nhưng nếu bạn muốn lưu tài liệu từ những chương trình Python của tớ, hãy sử dụng mô-đun
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx34Lưu những biến với pprint. hàm pformat()
Nhớ lại rằng hàm
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')005 sẽ “in đẹp” nội dung của list hoặc từ điển ra màn hình hiển thị, trong khi hàm >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')006 sẽ trả về cùng văn bản này dưới dạng chuỗi thay vì in nó. Chuỗi này sẽ không riêng gì có được định dạng để dễ đọc mà còn là một mã Python đúng về mặt cú pháp. Giả sử bạn có một từ điển được tàng trữ trong một biến và bạn muốn lưu biến này và nội dung của nó để sử dụng trong tương lai. Sử dụng >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')006 sẽ đáp ứng cho bạn một chuỗi mà bạn hoàn toàn có thể ghi vào . tệp py . Tệp này sẽ là mô-đun rất riêng của bạn mà bạn hoàn toàn có thể nhập bất kể lúc nào bạn muốn sử dụng biến được tàng trữ trong đó.Ví dụ: nhập thông tin sau vào trình bao tương tác
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')05Ở đây, chúng tôi nhập
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')008 để được cho phép chúng tôi sử dụng >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')006. Chúng tôi có một list những từ điển, được tàng trữ trong một biến >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx91. Để giữ list trong >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx91 khả dụng trong cả sau khi chúng tôi đóng trình bao, chúng tôi sử dụng >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')006 để trả về dưới dạng chuỗi. Sau khi chúng tôi có tài liệu trong >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx91 dưới dạng chuỗi, thật thuận tiện và đơn giản để ghi chuỗi vào một tệp mà chúng tôi sẽ gọi là myCats. p .Bản thân những mô-đun mà câu lệnh
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')014 nhập chỉ là những tập lệnh Python. Khi chuỗi từ >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')006 được lưu vào một . py , tệp này là một mô-đun hoàn toàn có thể được nhập in như bất kỳ tệp nào khác.Và vì bản thân những tập lệnh Python chỉ là những tệp văn bản có . py , những chương trình Python của bạn thậm chí hoàn toàn có thể tạo những chương trình Python khác. Sau đó, bạn hoàn toàn có thể nhập những tệp này vào tập lệnh.
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')06Lợi ích của việc tạo . py (trái ngược với việc lưu những biến với mô-đun
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx34) chính bới nó là một tệp văn bản, nội dung của tệp hoàn toàn có thể được đọc và sửa đổi bởi bất kỳ ai bằng một trình soạn thảo văn bản đơn giản. Tuy nhiên, đối với hầu hết những ứng dụng, lưu tài liệu bằng phương pháp sử dụng mô-đun >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx34 là cách ưu tiên để lưu những biến vào một tệp. Chỉ những kiểu tài liệu cơ bản như số nguyên, số float, chuỗi, list và từ điển mới hoàn toàn có thể được ghi vào một tệp dưới dạng văn bản đơn giản. Chẳng hạn, những đối tượng >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx36 không thể được mã hóa dưới dạng văn bản.Dự án. Tạo tệp thắc mắc ngẫu nhiên
Giả sử bạn là giáo viên địa lý với 35 học viên trong lớp và bạn muốn đưa ra một câu đố vui về thủ phủ những bang của Hoa Kỳ. Than ôi, lớp của bạn có một vài quả trứng xấu trong đó, và bạn không thể tin học viên không khí lận. Bạn muốn sắp xếp ngẫu nhiên thứ tự những thắc mắc để mỗi thắc mắc là duy nhất, khiến không còn ai hoàn toàn có thể lấy câu vấn đáp từ bất kỳ ai khác. Tất nhiên, làm điều này bằng tay thủ công sẽ là một việc làm dài và nhàm chán. May mắn thay, bạn biết một số trong những Python
Đây là những gì chương trình làm
Tạo 35 câu đố rất khác nhau
Tạo 50 thắc mắc trắc nghiệm cho từng bài kiểm tra, theo thứ tự ngẫu nhiên
Cung cấp câu vấn đáp đúng và ba câu vấn đáp sai ngẫu nhiên cho từng thắc mắc, theo thứ tự ngẫu nhiên
Viết những câu đố vào 35 tệp văn bản
Viết những phím trả lời cho 35 tệp văn bản
Điều này nghĩa là mã sẽ nên phải làm như sau
Lưu trữ những tiểu bang và thủ đô của tớ trong một từ điển
Gọi
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35, >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx38, và >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx40 cho những tệp văn bản chính của bài kiểm tra và câu vấn đápSử dụng
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')022 để sắp xếp ngẫu nhiên thứ tự những thắc mắc và tùy chọn trắc nghiệmBước 1. Lưu trữ tài liệu bài kiểm tra trong từ điển
Bước đầu tiên là tạo tập lệnh khung và điền vào đó tài liệu bài kiểm tra của bạn. Tạo một tệp mang tên randomQuizGenerator. py và làm cho nó in như sau.
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')07Vì chương trình này sẽ sắp xếp ngẫu nhiên những thắc mắc và câu vấn đáp, nên bạn cần nhập mô-đun
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')023 ❶ để sử dụng những hiệu suất cao của nó. Biến >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')024 ❷ chứa một từ điển với những tiểu bang của Hoa Kỳ làm khóa và chữ hoa của chúng làm giá trị. Và vì bạn muốn tạo 35 câu đố, mã thực sự tạo ra những tệp chính của thắc mắc và câu vấn đáp (được đánh dấu bằng >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')025 nhận xét hiện tại) sẽ đi vào bên trong vòng lặp >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')026 lặp lại 35 lần ❸. (Số này hoàn toàn có thể được thay đổi để tạo bất kỳ số lượng tệp bài kiểm tra nào. )Bước 2. Tạo tệp thắc mắc và xáo trộn thứ tự thắc mắc
Bây giờ là lúc để khởi đầu điền vào những
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')025 đóMã trong vòng lặp sẽ được lặp lại 35 lần—một lần cho từng bài kiểm tra—vì vậy bạn chỉ phải lo ngại về một bài kiểm tra tại thuở nào điểm trong vòng lặp. Trước tiên, bạn sẽ tạo tệp bài kiểm tra thực tế. Nó nên phải có một tên tệp duy nhất và cũng phải có một số trong những loại tiêu đề tiêu chuẩn trong đó, với những vị trí để học viên điền tên, ngày tháng và tiết học. Sau đó, bạn sẽ cần lấy một list những trạng thái theo thứ tự ngẫu nhiên, list này hoàn toàn có thể được sử dụng sau này để tạo thắc mắc và câu vấn đáp cho bài kiểm tra
Thêm những dòng mã sau vào randomQuizGenerator. p .
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')08Tên tệp của những câu đố sẽ là capitalsquiz , trong đó là một số trong những duy nhất cho bài kiểm tra đến từ
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')028, bộ đếm của vòng lặp >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')026. Đáp án cho capitalsquiz sẽ được tàng trữ trong tệp văn bản mang tên capitalsquiz_answers . Mỗi lần qua vòng lặp, trình giữ chỗ >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')030 trong >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')031 và >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')032 sẽ được thay thế bằng >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')033, do đó, khóa thắc mắc và câu vấn đáp đầu tiên được tạo sẽ là capitalsquiz1. txt và capitalsquiz_answers1. txt . Các tệp này sẽ được tạo bằng lệnh gọi hàm >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35 tại ❶ và ❷, với >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx68 làm đối số thứ hai để mở chúng ở chính sách ghi.Câu lệnh
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx38 tại ❸ tạo tiêu đề bài kiểm tra để học viên điền vào. Cuối cùng, một list ngẫu nhiên những tiểu bang của Hoa Kỳ được tạo với sự trợ giúp của hàm >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')022 ❹, hàm này sắp xếp lại ngẫu nhiên những giá trị trong bất kỳ list nào được chuyển đến nóBước 3. Tạo tùy chọn trả lời
Bây giờ bạn cần tạo những tùy chọn trả lời cho từng thắc mắc, đây sẽ là nhiều lựa chọn từ A đến D. Bạn sẽ cần tạo một vòng lặp
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')026 khác—vòng lặp này để tạo nội dung cho từng thắc mắc trong số 50 thắc mắc trong bài kiểm tra. Sau đó, sẽ có một vòng lặp >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')026 thứ ba được lồng vào bên trong để tạo những tùy chọn trắc nghiệm cho từng thắc mắc. Làm cho mã của bạn trông in như sau>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')09Câu trả lời đúng rất dễ nhận được—nó được tàng trữ dưới dạng một giá trị trong từ điển
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')024 ❶. Vòng lặp này sẽ lặp qua những tiểu bang trong list >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')041 đã xáo trộn, từ >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')042 đến >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')043, tìm từng tiểu bang trong >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')024 và tàng trữ vốn tương ứng của tiểu bang đó trong >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')045Danh sách những câu vấn đáp sai hoàn toàn có thể phức tạp hơn. Bạn hoàn toàn có thể lấy nó bằng phương pháp sao chép tất cả những giá trị trong từ điển
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')024 ❷, xóa câu vấn đáp đúng ❸ và chọn ba giá trị ngẫu nhiên từ list này ❹. Hàm >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')047 giúp thuận tiện và đơn giản thực hiện lựa chọn này. Đối số đầu tiên của nó là list bạn muốn chọn từ đó; . Danh sách đầy đủ những phương án trả lời là sự việc phối hợp của ba câu vấn đáp sai này với câu vấn đáp đúng ❺. Cuối cùng, những câu vấn đáp cần phải chọn ngẫu nhiên ❻ để câu vấn đáp đúng không phải lúc nào thì cũng là lựa chọn D.Bước 4. Viết nội dung cho những tệp chính của thắc mắc và câu vấn đáp
Tất cả những gì còn sót lại là viết thắc mắc vào tệp bài kiểm tra và câu vấn đáp vào tệp câu vấn đáp. Làm cho mã của bạn trông in như sau
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')10Một vòng lặp
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')026 đi qua những số nguyên >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')049 đến >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')050 sẽ ghi những phương án trả lời vào list >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')051 ❶. Biểu thức >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')052 tại ❷ coi chuỗi >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')053 là một mảng và sẽ đánh giá tiền >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')054,>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')055, >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')056 và sau đó là >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')057 trên mỗi lần lặp tương ứng thông qua vòng lặpỞ dòng ở đầu cuối ❸, biểu thức
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')058 sẽ tìm chỉ số nguyên của câu vấn đáp đúng trong những tùy chọn trả lời được sắp xếp ngẫu nhiên và >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')059 sẽ đánh giá vần âm của câu vấn đáp đúng để ghi vào tệp khóa câu vấn đápSau khi bạn chạy chương trình, đây là cách capitalsquiz1 của bạn. txt sẽ hiển thị, tuy nhiên tất nhiên những tùy chọn thắc mắc và câu vấn đáp của bạn hoàn toàn có thể khác với những tùy chọn hiển thị ở đây, tùy thuộc vào kết quả của cuộc gọi
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')022 của bạn. >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')11Tương ứng capitalsquiz_answers1. txt tệp văn bản sẽ trông như vậy này.
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')12Dự án. bảng nhiều ngăn
Giả sử bạn có trách nhiệm nhàm chán là điền vào nhiều biểu mẫu trong một trang web hoặc phần mềm có nhiều trường văn bản. Bảng nhớ tạm giúp bạn không phải gõ đi gõ lại cùng một văn bản. Nhưng mỗi lần chỉ có một thứ hoàn toàn có thể có trên khay nhớ tạm. Nếu bạn có nhiều đoạn văn bản rất khác nhau cần sao chép và dán, bạn phải tiếp tục đánh dấu và sao chép lặp đi lặp lại một vài nội dung giống nhau
Bạn hoàn toàn có thể viết chương trình Python để theo dõi nhiều đoạn văn bản. “Bảng nhiều ngăn” này sẽ được đặt tên là mcb. pyw (vì “mcb” dễ gõ hơn “multiclipboard”). . pyw nghĩa là Python sẽ không hiển thị hiên chạy cửa số Terminal khi nó chạy chương trình này. (Xem Phụ lục B để biết thêm rõ ràng. )
Chương trình sẽ lưu từng đoạn văn bản trong clipboard dưới một từ khóa. Ví dụ: khi bạn chạy
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')061, nội dung hiện tại của khay nhớ tạm sẽ được lưu với từ khóa spam . Văn bản này sau đó hoàn toàn có thể được tải lại vào khay nhớ tạm bằng phương pháp chạy >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')062. Và nếu người tiêu dùng quên những từ khóa họ có, họ hoàn toàn có thể chạy >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')063 để sao chép list tất cả những từ khóa vào khay nhớ tạm.Đây là những gì chương trình làm
Đối số dòng lệnh cho từ khóa được chọn
Nếu đối số là
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')064 thì nội dung khay nhớ tạm được lưu vào từ khóaNếu đối số là
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')065 thì tất cả những từ khóa sẽ được sao chép vào khay nhớ tạmNếu không, văn bản cho từ khóa sẽ được sao chép vào khay nhớ tạm
Điều này nghĩa là mã sẽ nên phải làm như sau
Đọc những đối số dòng lệnh từ
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')066Đọc và ghi vào clipboard
Lưu và tải vào một tệp kệ
Nếu bạn sử dụng Windows, bạn hoàn toàn có thể thuận tiện và đơn giản chạy tập lệnh này từ Run. hiên chạy cửa số bằng phương pháp tạo một tệp bó mang tên mcb. bat với nội dung sau.
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')13Bước 1. Nhận xét và Thiết lập Kệ
Hãy khởi đầu bằng phương pháp tạo một ngữ cảnh khung với một số trong những nhận xét và thiết lập cơ bản. Làm cho mã của bạn trông in như sau
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')14Thực tế phổ biến là đưa thông tin sử dụng chung vào phần nhận xét ở đầu tệp ❶. Nếu bạn quên cách chạy tập lệnh của tớ, bạn luôn hoàn toàn có thể xem những nhận xét này để được nhắc nhở. Sau đó, bạn nhập những mô-đun của tớ ❷. Sao chép và dán sẽ yêu cầu mô-đun
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')067 và đọc những đối số dòng lệnh sẽ yêu cầu mô-đun >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')068. Mô-đun >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx34 cũng tiếp tục có ích. Bất cứ lúc nào người tiêu dùng muốn lưu một đoạn văn bản mới vào khay nhớ tạm, bạn sẽ lưu nó vào tệp giá sách. Sau đó, khi người tiêu dùng muốn dán văn bản trở lại khay nhớ tạm của tớ, bạn sẽ mở tệp kệ và tải lại vào chương trình của tớ. Tệp kệ sẽ được đặt tên với tiền tố mcb ❸.Bước 2. Lưu nội dung Clipboard bằng từ khóa
Chương trình thực hiện những việc rất khác nhau tùy thuộc vào việc người tiêu dùng muốn lưu văn bản vào từ khóa, tải văn bản vào khay nhớ tạm hay liệt kê tất cả những từ khóa hiện có. Hãy xử lý và xử lý trường hợp đầu tiên đó. Làm cho mã của bạn trông in như sau
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')15Nếu đối số dòng lệnh đầu tiên (sẽ luôn ở chỉ mục
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')070 của list >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')066) là >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')072 ❶, thì đối số dòng lệnh thứ hai là từ khóa cho nội dung hiện tại của khay nhớ tạm. Từ khóa sẽ được sử dụng làm khóa cho >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')073 và giá trị sẽ là văn bản hiện có trên khay nhớ tạm ❷Nếu chỉ có một đối số dòng lệnh, bạn sẽ nhận định rằng đó là
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')074 hoặc một từ khóa để tải nội dung vào khay nhớ tạm. Bạn sẽ triển khai mã đó sau. Hiện tại, chỉ việc đặt một phản hồi >>> import os >>> os.makedirs('C:\delicious\walnut\waffles')025 ở đó ❸Bước 3. Liệt kê từ khóa và tải nội dung của từ khóa
Cuối cùng, hãy thực hiện hai trường hợp còn sót lại. Người dùng muốn tải văn bản trong khay nhớ tạm từ một từ khóa hoặc họ muốn có list tất cả những từ khóa có sẵn. Làm cho mã của bạn trông in như sau
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')16Nếu chỉ có một đối số dòng lệnh, trước tiên hãy kiểm tra xem đó liệu có phải là
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')074 không ❶. Nếu vậy, một chuỗi đại diện cho list những phím giá sẽ được sao chép vào khay nhớ tạm ❷. Người dùng hoàn toàn có thể dán list này vào trình soạn thảo văn bản đang mở để đọcMặt khác, bạn hoàn toàn có thể nhận định rằng đối số dòng lệnh là một từ khóa. Nếu từ khóa này tồn tại trong giá sách
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')073 dưới dạng khóa, bạn hoàn toàn có thể tải giá trị vào khay nhớ tạm ❸Và đó là nó. Khởi chạy chương trình này còn có tiến trình rất khác nhau tùy thuộc vào hệ điều hành mà máy tính của bạn sử dụng. Xem Phụ lục B để biết rõ ràng về hệ điều hành của bạn
Nhớ lại chương trình khóa mật khẩu mà bạn đã tạo trong Chương 6 đã tàng trữ mật khẩu trong từ điển. Cập nhật mật khẩu yêu cầu thay đổi mã nguồn của chương trình. Điều này sẽ không lý tưởng vì người tiêu dùng thông thường không cảm thấy thoải mái khi thay đổi mã nguồn để update phần mềm của tớ. Ngoài ra, mọi khi bạn sửa đổi mã nguồn của một chương trình, bạn sẽ có rủi ro tiềm ẩn tiềm ẩn vô tình đưa ra những lỗi mới. Bằng cách tàng trữ tài liệu cho chương trình ở một nơi khác với mã, bạn hoàn toàn có thể làm cho chương trình của tớ dễ sử dụng hơn cho những người dân khác và hoàn toàn có thể chống lại lỗi cao hơn
Bản tóm tắt
Các tệp được sắp xếp thành những thư mục (còn được gọi là thư mục) và một đường dẫn mô tả vị trí của tệp. Mọi chương trình đang chạy trên máy tính của bạn đều có một thư mục thao tác hiện tại, được cho phép bạn chỉ định đường dẫn tệp liên quan đến vị trí hiện tại thay vì luôn nhập đường dẫn đầy đủ (hoặc tuyệt đối). Mô-đun
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')43 có nhiều hiệu suất cao để thao tác với đường dẫn tệpCác chương trình của bạn cũng hoàn toàn có thể tương tác trực tiếp với nội dung của tệp văn bản. Hàm
>>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35 hoàn toàn có thể mở những tệp này để đọc nội dung của chúng dưới dạng một chuỗi lớn (với phương thức >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx37) hoặc dưới dạng list những chuỗi (với phương thức >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx65). Hàm >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx35 hoàn toàn có thể mở tệp ở chính sách ghi hoặc nối thêm để tạo tệp văn bản mới hoặc thêm vào tệp văn bản hiện có, tương ứngTrong những chương trước, bạn đã sử dụng khay nhớ tạm như một phương pháp để đưa một lượng lớn văn bản vào một chương trình, thay vì nhập tất cả vào. Giờ đây, bạn hoàn toàn có thể yêu cầu những chương trình của tớ đọc tệp trực tiếp từ ổ cứng, đây là một tăng cấp cải tiến lớn, vì tệp ít dịch chuyển hơn nhiều so với khay nhớ tạm
Trong chương tiếp theo, bạn sẽ học cách tự xử lý những tệp, bằng phương pháp sao chép, xóa, đổi tên, di tán, v.v.
Tải thêm tài liệu liên quan đến nội dung bài viết Làm thế nào để đọc qua những tập tin trong một thư mục python programming python
Post a Comment