Câu trả lời:
Chìa khóa ở đây là namethuộc tính của fđối tượng đại diện cho tệp đã mở. Bạn hiểu như thế:
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> f.name
'/Users/Desktop/febROSTER2012.xls'
Nó có ích gì không?
tempfilemô-đun, đặc biệt là đối với tempfile.NamedTemporaryFile, ngay bên dưới tài liệu tempfile.TemporaryFilemà bạn đã đề cập. Đây là trường hợp cụ thể cho tệp tạm thời và như đã thấy trong tài liệu, đã có giải pháp hiện có. tempfile.TemporaryFilekhông được sử dụng trong trường hợp bạn muốn đọc tên.
Tôi đã có vấn đề chính xác cùng. Nếu bạn đang sử dụng một đường dẫn tương đối thì os.path.dirname (đường dẫn) sẽ chỉ trả về đường dẫn tương đối. os.path.realpath thực hiện thủ thuật:
>>> import os
>>> f = open('file.txt')
>>> os.path.realpath(f.name)
os.path.realpathsẽ trả về '~ / text.txt' thay vì '~ / Documents / text.txt'.
Và nếu bạn chỉ muốn lấy tên thư mục và không cần tên tệp đi kèm với nó, thì bạn có thể làm điều đó theo cách thông thường sau đây bằng cách sử dụng osmô-đun Python.
>>> import os
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> os.path.dirname(f.name)
>>> '/Users/Desktop/'
Bằng cách này, bạn có thể nắm được cấu trúc thư mục.
f = open('febROSTER2012.xls'). Làm thế nào bạn có thể đi đến con đường đầy đủ?
Bạn cũng có thể nhận được nó như thế này.
filepath = os.path.abspath(f.name)
tempfile.TemporaryFile(mode='w', prefix='xxx', suffix='.txt')không hoạt động!