Lấy đường dẫn hiện tại python

Tôi muốn có được đường dẫn thư mục của tập tin hiện tại.
Tôi đã thử:

>>> os.path.abspath(__file__) 'C:\\python27\\test.py'

Nhưng làm thế nào tôi có thể lấy đường dẫn của thư mục? Ví dụ:

'C:\\python27\\'

  • python
  • filesystems

555 hữu ích 2 bình luận 812k xem chia sẻ

answer

1182

Nếu bạn có nghĩa là thư mục của tập lệnh đang được chạy:

import os os.path.dirname(os.path.abspath(__file__))

Nếu bạn có nghĩa là thư mục làm việc hiện tại:

import os os.getcwd()

Lưu ý rằng trước và sau filelà hai dấu gạch dưới, không chỉ một.

Cũng lưu ý rằng nếu bạn đang chạy tương tác hoặc đã tải mã từ một thứ khác ngoài tệp (ví dụ: cơ sở dữ liệu hoặc tài nguyên trực tuyến), __file__có thể không được đặt vì không có khái niệm "tệp hiện tại". Câu trả lời ở trên giả sử kịch bản phổ biến nhất là chạy tập lệnh python có trong tệp.

1182 hữu ích 5 bình luận chia sẻ

answer

35

Trong Python 3:

from pathlib import Path mypath = Path().absolute() print(mypath)

Tài liệu về pathlib

35 hữu ích 5 bình luận chia sẻ

answer

9

import os print os.path.dirname(__file__)

9 hữu ích 3 bình luận chia sẻ

answer

5

Bạn có thể sử dụng osos.paththư viện dễ dàng như sau

import os os.chdir(os.path.dirname(os.getcwd()))

os.path.dirnametrả về thư mục trên từ cái hiện tại Nó cho phép chúng tôi thay đổi lên cấp trên mà không cần chuyển bất kỳ đối số tệp nào và không biết đường dẫn tuyệt đối.

5 hữu ích 1 bình luận chia sẻ

answer

2

Trong Python 3.x tôi làm:

from pathlib import Path path = Path(__file__).parent.absolute()

Giải trình:

  • Path(__file__) là đường dẫn đến tập tin hiện tại.
  • .parentcung cấp cho bạn thư mục tập tin.
  • .absolute()cung cấp cho bạn đường dẫn tuyệt đối đầy đủ đến nó.

Sử dụng pathliblà cách hiện đại để làm việc với các đường dẫn. Nếu bạn cần nó như một chuỗi sau này vì một số lý do, chỉ cần làm str(path).

2 hữu ích 0 bình luận chia sẻ

answer

0

IPythoncó một lệnh ma thuật %pwdđể có được thư mục làm việc hiện tại. Nó có thể được sử dụng theo cách sau:

from IPython.terminal.embed import InteractiveShellEmbed ip_shell = InteractiveShellEmbed() present_working_directory = ip_shell.magic("%pwd")

Trên IPython Jupyter Notebook %pwdcó thể được sử dụng trực tiếp như sau:

present_working_directory = %pwd

0 hữu ích 2 bình luận chia sẻ

answer

0

Để giữ tính nhất quán di chuyển trên các nền tảng (macOS / Windows / Linux), hãy thử:

path = r'%s' % os.getcwd().replace('\\','/')

0 hữu ích 0 bình luận chia sẻ

answer

0

Tôi đã tạo một hàm để sử dụng khi chạy python trong IIS trong CGI để lấy thư mục hiện tại:

import os def getLocalFolder(): path=str(os.path.dirname(os.path.abspath(__file__))).split('\\') return path[len(path)-1]

0 hữu ích 0 bình luận chia sẻ

answer

0

Hệ thống: MacOS

Phiên bản: Python 3.6 w / Anaconda

import os rootpath = os.getcwd() os.chdir(rootpath)

0 hữu ích 0 bình luận chia sẻ

answer

0

TÍNH CHẤT TUYỆT VỜI HIỆU QUẢ TẠI PYTHON:

from pathlib import Path #Returns the path of the directory, where your script file is placed mypath = Path().absolute() print('Absolute path : {}'.format(mypath)) #if you want to go to any other file inside the subdirectories of the directory path got from above method filePath = mypath/'data'/'fuel_econ.csv' print('File path : {}'.format(filePath)) #To check if file present in that directory or Not isfileExist = filePath.exists() print('isfileExist : {}'.format(isfileExist)) #To check if the path is a directory or a File isadirectory = filePath.is_dir() print('isadirectory : {}'.format(isadirectory)) #To get the extension of the file fileExtension = mypath/'data'/'fuel_econ.csv' print('File extension : {}'.format(filePath.suffix))

ĐẦU RA: TUYỆT VỜI TUYỆT VỜI LÀ ĐƯỜNG Ở ĐÂU FY PONTHON CỦA BẠN ĐƯỢC TẠO

Đường dẫn tuyệt đối: D: \ Học \ Học máy \ Jupitor Notebook \ JupytorNotebookTest2 \ Udacity_Scripts \ Matplotlib và Seaborn Part2

Đường dẫn tệp: D: \ Học \ Học máy \ Jupitor Notebook \ JupytorNotebookTest2 \ Udacity_Scripts \ Matplotlib và seaborn Part2 \ data \ Fuel_econ.csv

isfileExist: Đúng

isadirectory: Sai

Phần mở rộng tệp: .csv

0 hữu ích 0 bình luận chia sẻ

answer

1

## IMPORT MODULES import os ## CALCULATE FILEPATH VARIABLE filepath = os.path.abspath('') ## ~ os.getcwd() ## TEST TO MAKE SURE os.getcwd() is EQUIVALENT ALWAYS.. ## ..OR DIFFERENT IN SOME CIRCUMSTANCES

1 hữu ích 5 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Chủ đề