Tôi có một số tập lệnh lấy đầu vào là tên thư mục và chương trình của tôi tạo tệp trong các thư mục đó. Đôi khi tôi muốn lấy tên cơ sở của một thư mục cho chương trình và sử dụng nó để tạo các tệp khác nhau trong thư mục. Ví dụ:Cách thanh lịch để lấy tên cơ sở của thư mục bằng Python?
# directory name given by user via command-line
output_dir = "..." # obtained by OptParser, for example
my_filename = output_dir + '/' + os.path.basename(output_dir) + '.my_program_output'
# write stuff to my_filename
Vấn đề là nếu người dùng cung cấp tên thư mục có dấu gạch chéo, thì os.path.basename sẽ trả về chuỗi trống, không phải là thứ tôi muốn. Cách thanh lịch nhất để đối phó với những vấn đề cắt giảm/dấu gạch chéo trong python là gì? Tôi biết tôi có thể tự kiểm tra dấu gạch chéo ở cuối output_dir và loại bỏ nó nếu nó ở đó, nhưng có vẻ như có một cách tốt hơn. Lanhung?
Ngoài ra, bạn có thể thêm ký tự '/' theo cách thủ công không? Ví dụ. output_dir + '/' os.path.basename() hoặc có cách tổng quát hơn để xây dựng đường dẫn không?
Cảm ơn.
"" "nó sẽ phá vỡ trên Windows" "": slashes Bao gồm sẽ phá vỡ chỉ khi bạn ăn nó như một phần của một lệnh để ví dụ 'os.system()'; trình phân tích cú pháp lệnh DOS chỉ hiểu các dấu gạch chéo ngược. Cho ăn nó, ví dụ open() khá ổn. Tuy nhiên nếu đường dẫn được xây dựng sẽ được hiển thị cho người dùng hoặc quản trị viên Windows, hãy chuẩn bị sẵn sàng cho rất nhiều flak :-) –