Tôi muốn làm như sau trong chương trình của mình:
a] Yêu cầu người dùng nhập tên của thư mục b] Tạo thư mục trong thư mục của tôi c] ghi các tệp vào thư mục đã tạo này
b] create the folder in my directory
c] write files to this created folder
Tôi đã tạo thư mục trong thư mục của mình nhưng tôi không quản lý để viết văn bản vào một tệp và lưu nó trong thư mục mới này. Chiến lược của tôi là mở để viết chèn đường dẫn hoàn chỉnh của thư mục + biến lưu trữ tên của thư mục, nhưng nó không hoạt động. Bất cứ ai có thể giúp tôi với điều đó?
final_text=' '.join[l]
final_text=final_text.replace[' ,',',']
#print['\n\n', final_text]
def createFolder[directory]:
try:
if not os.path.exists[directory]:
os.makedirs[directory]
except OSError:
print['Error: Creating directory. '+ directory]
user2=input['\nWrite text to a file? Type "Y" for yes or "N" for no:']
if user2 =='Y':
text_name=input["name your folder. E.g. './texts/': "]
createFolder[text_name]
out_file=open['/Users/nataliaresende/Dropbox/PYTHON/'+text_name,"w"]
out_file.write[final_text]
out_file.close[]
print['\n\nText named',text_name, 'was written to a file. Check your directory']
else:
print['ok']
Các phần sau giải thích cách tạo và lưu một tệp mới trong Python bằng thư mục mới [thư mục] làm đích.
- Lỗi khi chỉ định thư mục không tồn tại với Open [] [________ 6][
FileNotFoundError
] os.makedirs[]
tạo ra một thư mụcCreate a directory- Mã ví dụ để tạo tệp mới với đích
Sau đây là một ví dụ mã của một hàm tạo và lưu một tệp mới bằng cách chỉ định thư mục đích.
Đối số đầu tiên DIR_PATH là đường dẫn của thư mục đích, tên tệp đối số thứ hai là tên của tệp mới sẽ được tạo và đối số thứ ba file_content là nội dung được viết, mỗi loại được chỉ định là một chuỗi.FileNotFoundError
If this error occurs, you can create a new directory with os.madeirs[] before executing the function to save, as in the following example.
Nếu thư mục được chỉ định không tồn tại, hãy tạo một thư mục mới.
Sử dụng như sau.[FileNotFoundError
]
open['not_exist_dir/new_file.txt', 'w']
# FileNotFoundError
Đối số đầu tiên của Open [] có thể là một đường dẫn tuyệt đối hoặc đường dẫn so với thư mục hiện tại.
Để sử dụng cơ bản của Open [], chẳng hạn như tạo một tệp mới trong một thư mục hiện có hoặc ghi đè hoặc nối vào một tệp hiện có, hãy tham khảo bài viết sau.
Tạo một thư mục [os.makedirs []]
Khi tạo một tệp mới trong một thư mục không tồn tại, cần phải tạo thư mục trước khi mở [].
Nếu bạn đang sử dụng Python 3.2 trở lên, sẽ thuận tiện khi sử dụng Os.Makenirs [] với đối số tồn tại_ok = true. Ngay cả khi thư mục đích đã tồn tại, sẽ không có lỗi nào và thư mục có thể được tạo cùng một lúc.
import os
os.makedirs[new_dir_path, exist_ok=True]
Nếu bạn có phiên bản Python cũ hơn và không có đối số tồn tại_ok trong Os.Makenirs [], bạn sẽ gặp lỗi nếu bạn chỉ định đường dẫn đến thư mục tồn tại, vì vậy hãy sử dụng Os.Path.exists [] để kiểm tra sự tồn tại của thư mục đầu tiên.
if not os.path.exists[new_dir_path]:
os.makedirs[new_dir_path]
Xem bài viết sau đây để biết chi tiết.
- Các bài viết liên quan: Makedirs để tạo ra các thư mục phân cấp sâu sắc trong Pythonmakedirs to create deep hierarchical directories recursively in Python
Mã ví dụ để tạo tệp mới với đích
Sau đây là một ví dụ mã của một hàm tạo và lưu một tệp mới bằng cách chỉ định thư mục đích.
Đối số đầu tiên DIR_PATH là đường dẫn của thư mục đích, tên tệp đối số thứ hai là tên của tệp mới sẽ được tạo và đối số thứ ba file_content là nội dung được viết, mỗi loại được chỉ định là một chuỗi.
Nếu thư mục được chỉ định không tồn tại, hãy tạo một thư mục mới.
import os
def save_file_at_dir[dir_path, filename, file_content, mode='w']:
os.makedirs[dir_path, exist_ok=True]
with open[os.path.join[dir_path, filename], mode] as f:
f.write[file_content]
Sử dụng như sau.
save_file_at_dir['new_dir/sub_dir', 'new_file.txt', 'new text']
Trong trường hợp này, tệp new_file.txt với nội dung văn bản mới, văn bản mới sẽ được tạo trong new_dir \ sub_dir. Nói cách khác, tệp sau đây sẽ được tạo mới .________ 10
Kết nối thư mục và tên tệp với os.path.join [].
Ngoài ra, chế độ Open [] được chỉ định là một đối số. Đối với các tệp văn bản, 'W' mặc định là tốt, nhưng nếu bạn muốn tạo tệp nhị phân, hãy đặt chế độ = 'wb'.