Hướng dẫn dùng basename python trong PHP

  • Định Nghĩa.
  • Cú pháp.
    • Cú pháp:
    • Trong đó.
    • Giá trị trả về.
  • Ví dụ.
    • Ví dụ 1 sử dùng hàm basename().
  • Hàm liên quan
  • Thông tin thêm.

Nội dung chính

  • Định Nghĩa.
  • Trong đó.
  • Giá trị trả về.
  • Ví dụ 1 sử dùng hàm basename().
  • Hàm liên quan
  • Thông tin thêm.
  • Kết quả trả về
  • Kết quả trả về
  • Lấy tên file trong python | os.path.basename()
  • Lấy đuôi file trong python | os.path.splitext()
  • Lấy tên thư mục trong python | os.path.basename()
  • Lấy đường dẫn thư mục trong python | os.path.dirname()
  • Lấy tên file kèm tên thư mục trong python | os.path.split()
  • Tổng kết và thực hành

Định Nghĩa.

Hàm basename() sẽ lấy về phần đuôi của đường dẫn được truyền vào.
Hàm tương thích trên PHP4, PHP5, PHP7.

Cú pháp.

Cú pháp:

basename ( string $path [, string $suffix ] ) : string
  • basename () hoạt động một cách đơn giản trên chuỗi đầu vào và không biết hệ thống tập tin thực tế hoặc các thành phần đường dẫn như “..”.
  • basename () là locale aware, do đó, để nó nhìn thấy tên cơ sở chính xác với các đường dẫn ký tự đa dòng, địa điểm phù hợp phải được đặt bằng cách sử dụng hàm setlocale ()

Trong đó.

  • $path là đường dẫn.
  • $suffix là tham số, nếu phần cuối của phần đuôi trả về nằm trong chuỗi $suffix nó sẽ bị loại bỏ.

Giá trị trả về.

  • Hàm sẽ trả về phần đuôi của đường dẫn truyền vào.

Ví dụ.

Ví dụ 1 sử dùng hàm basename().

code:

Kết quả:

1) sudoers
2) sudoers.d
3) passwd
4) etc
5) .
6)

Hàm liên quan

  • dirname() – Trả về đường dẫn của thư mục cha.
  • pathinfo() – Trả về thông tin về đường dẫn tệp.

Thông tin thêm.

  • Hỗ trợ của tham số $suffix  đã thay đổi giữa PHP4 và PHP5: trong PHP4, $suffix  được loại bỏ trước tiên và sau đó basename cốt lõi được áp dụng. ngược lại, trong PHP5, $suffix  được loại bỏ SAU khi áp dụng basename cốt lõi.
    Ví dụ:
    "path/to/file.xml#xpointer(/Texture)";
      echo basename($file".xml#xpointer(/Texture)");
    ?>

    Kết quả:

    Result in PHP4: file
    Result in PHP5: Texture)

Các bạn có thể xem chi tiết hơn trên php.net.

Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm basename() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé.
Cảm ơn các bạn đã ghé thăm codetutam.com

- Hàm basename() dùng để trả về tên tập tin từ một đường dẫn.

- Cú pháp:

basename(path, end)

- Trong đó:

Tham sốYêu cầuMô tả
path Bắt buộc

- Đường dẫn được dùng để kiểm tra

end Không bắt buộc

- Chỉ định đoạn cuối của tập tin. Nếu tên tập tin từ đường dẫn có chứa đoạn cuối là nó thì kết quả trả về sẽ bỏ qua nó.


Xem ví dụ


Xem ví dụ

Hàm dirname() sẽ chỉ ra thư mục cha của đường dẫn truyền vào.

Nội dung chính

  • Kết quả trả về
  • Kết quả trả về
  • Lấy tên file trong python | os.path.basename()
  • Lấy đuôi file trong python | os.path.splitext()
  • Lấy tên thư mục trong python | os.path.basename()
  • Lấy đường dẫn thư mục trong python | os.path.dirname()
  • Lấy tên file kèm tên thư mục trong python | os.path.split()
  • Tổng kết và thực hành

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú phápdirname( $path, $level);

Lưu ý: tham số $level được thêm vào từ PHP 7.0.0 trở lên.

Trong đó

Bài viết này được đăng tại [free tuts .net]

  • $path là đường dẫn tới file hoặc thư mục nào đó.
  • $level là số cấp chênh lệch giữa vị trí của $path so với kết quả trả về.

Kết quả trả về

Hàm sẽ trả về tên của thư mục cha chứa thư mục hoặc file của đường dẫn $path.

Ví dụ

Một số ví dụ đơn giản về hàm dirname():

Code

echo dirname('C:\xampp\htdocs\LMGO\public\test.txt')."
"; echo dirname('/xampp/')."
"; echo dirname('.')."
";

Kết quả

C:\xampp\htdocs\LMGO\public
\
.

Tham khảo: php.net

Hàm dirname() sẽ chỉ ra thư mục cha của đường dẫn truyền vào.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú phápdirname( $path, $level);

Lưu ý: tham số $level được thêm vào từ PHP 7.0.0 trở lên.

Trong đó

Bài viết này được đăng tại [free tuts .net]

  • $path là đường dẫn tới file hoặc thư mục nào đó.
  • $level là số cấp chênh lệch giữa vị trí của $path so với kết quả trả về.

Kết quả trả về

Hàm sẽ trả về tên của thư mục cha chứa thư mục hoặc file của đường dẫn $path.

Ví dụ

Một số ví dụ đơn giản về hàm dirname():

Code

echo dirname('C:\xampp\htdocs\LMGO\public\test.txt')."
"; echo dirname('/xampp/')."
"; echo dirname('.')."
";

Kết quả

C:\xampp\htdocs\LMGO\public
\
.

Tham khảo: php.net

Hướng dẫn cách lấy tên file, thư mục và đuôi file trong python. Bạn sẽ học được cách sử dụng các hàm trong module os như os.path.basename(), os.path.dirname(), os.path.split(), os.path.splitext() trong python để lấy tên file, tên thư mục, đường dẫn thư mục và đuôi file trong python sau bài học này.

Lấy tên file trong python | os.path.basename()

Để lấy tên file trong python, chúng ta sử dụng hàm os.path.basename() trong module os, với cú pháp sau đây:

os.path.basename(path)

Trong đó path là đường dẫn của file cần lấy tên trong python. Kết quả chương trình, một tên file đầy đủ bao gồm cả tên và đuôi file sẽ được trả về.

Ví dụ, chúng ta có một thư mục như sau:

  |data/
  |--dir1
  |  |
  |  |--user.txt
  |
  |--dir2
  |
  |--take_file_name.py

Chúng ta lấy tên của file user.txt như sau:

import os
filepath = './dir1/user.txt'

basename = os.path.basename(filepath)
print(basename)


print(type(basename))

Lưu ý, chúng ta có thể lấy tên file trong python ngay cả khi file đó vốn không tồn tại bằn hàm os.path.basename(). Do hàm này không kiểm tra file có tồn tại hay không, nên lỗi không xảy ra:

import os
filepath_not_exist = './dir1/address.txt'

basename = os.path.basename(filepath_not_exist)
print(basename)

Nếu bạn chỉ muốn lấy tên file trong python với những file đã tồn tại, hãy sử dụng kết hợp với phương pháp kiểm tra file có tồn tại hay không mà Kiyoshi đã giới thiệu tại bài viết Kiểm tra tồn tại của file và thư mục trong python.

Lấy đuôi file trong python | os.path.splitext()

Để Lấy tên file trong python, chúng ta sử dụng hàm os.path.basename() ở trên kết hợp với hàm os.path.splitext() trong module os, với cú pháp sau đây:

os.path.splitext(filename)

Trong đó filename là tên file đầy đủ bao gồm cả tên và đuôi file của file cần lấy đuôi file trong python.
Hàm os.path.splitext() sẽ chia fileame thành hai phần tại vị trí dấu chấm . cuối cùng ở bên phải, và lưu giữ kết quả dưới dạng một tuple.

Thông thường, file sẽ có dạng tên file + . + đuôi file, do đó sau khi dùng hàm os.path.splitext() thì tên file và đuôi file( bao gồm cả dấu chấm .) sẽ được tách ra và lưu giữ dưới dạng một tuple.
Tùy vào mục đích sử dụng, ví dụ như chúng ta muốn lấy đuôi file trong python hay là lấy tên file không gồm đuôi file trong python mà chúng ta lấy thông tin ra từ tuple tạo ra.

Ví dụ, chúng ta lấy đuôi file và tên file không gồm đuôi file trong python như sau:

import os
filepath = './dir1/user.txt'

basename = os.path.basename(filepath)
print(basename)


name_tuple= os.path.splitext(basename)
print(name_tuple)


filename=name_tuple[0]
print(filename)


file_extension=name_tuple[1]
print(file_extension)

Nngoài cách truy cập vào phần tử trong tuple và lấy ra đuôi file , tên như ở trên, chúng ta còn có thể giải nén tuple và gán biến rồi sử dụng trực tiếp như dưới đây.

import os
filepath = './dir1/user.txt'

file_name, file_extension = os.path.splitext(os.path.basename(filepath))
print(file_name)


print(file_extension)

Lưu ý, do trong kết quả của hàm os.path.splitext() sẽ bao gồm cả dấu chấm . ở trong đuôi file, do đó nếu bạn muốn bỏ đi dấu chấm này, hãy sử dụng kết hợp với hàm tách chuỗi trong python, hoặc là dùng cách xóa đi dấu chấm này bằng cách dùng hàm xóa ký tự trong chuỗi python.

file_extension_without_dot=name_tuple[1].strip(".")

Lại nữa, do hàm os.path.splitext() chỉ tách đối số được chỉ định thành hai phần tại vị trí dấu chấm cuối cùng bên phải, nên với các file mà tên file được tạo ra từ nhiều hơn hai dấu chấm như filename.tar.gz, chúng ta cần phải sử dụng hàm này hai lần để có thể lấy tên file không kèm đuôi file trong python.

import os
filepath_tar_gz = './data/dir1/filename.tar.gz'
basename=os.path.basename(filepath_tar_gz)
print(basename)


basename_split1=os.path.splitext(basename)
print(basename_split1[0])


basename_split2=os.path.splitext(basename_split1)
print(basename_split2[0])

Lấy tên thư mục trong python | os.path.basename()

Chúng ta cũng dùng hàm os.path.basename() để lấy tên thư mục trong python, bằng cách chỉ định đối số path là một đường dẫn thư mục

os.path.basename(path)

Cách sử dụng cũng tương tự như khi lấy tên file trong python, ví dụ:

import os

folderpath = './user/dir1'
print(os.path.basename(folderpath))

Lấy đường dẫn thư mục trong python | os.path.dirname()

Để lấy đường dẫn thư mục trong python, chúng ta sử dụng hàm os.path.dirname() trong module os, với cú pháp sau đây:

os.path.dirname(path)

Trong đó path là đường dẫn của file hoặc thư mục cần lấy đường dẫn thư mục mẹ. Sau khi chạy, đường dẫn của thư mục mẹ chứa file hoặc thư mục chỉ đinh sẽ được trả về.
Ví dụ:

import os
filepath = './user/dir1/user.txt'
print(os.path.dirname(filepath))


dir_path='./user/dir1'
print(os.path.dirname(dir_path))

Tương tự như với hàm os.path.basename() thì hàm os.path.dirname() không kiểm tra sự tồn tại của đường dẫn chỉ định, do đó chúng ta cũng có thể lấy đường dẫn của thư mục kể cả thư mục đó vốn không tồn tai trước đó:

import os
path_not_exist = './client/address.txt'

dirname = os.path.dirname(path_not_exist)
print(dirname)

Trong trường hợp chúng ta cần lấy tên của thư mục mẹ chứa file hoặc thư mục đã được chỉ định, hãy sử dụng kèm với hàm os.path.basename() như sau

import os
filepath = './user/dir1/user.txt'
subdirname = os.path.basename(os.path.dirname(filepath))
print(subdirname)

Lấy tên file kèm tên thư mục trong python | os.path.split()

Để lấy tên file kèm tên thư mục chứa nó trong python, chúng ta sử dụng hàm os.path.split() trong module os với cú pháp sau đây:

os.path.split(path)

Trong đó path là đường dẫn của file cần lấy tên file kèm tên thư mục chứa nó.
Hàm os.path.split() sẽ tách đường dẫn chỉ định thành hai phần, tại vị trí dấu phân cách đường dẫn cuối cùng bên phải, sau đó lưu giữ kết quả vào một tuple.

Ví dụ:

import os
filepath = './user/dir1/user.txt'
files= os.path.split(filepath)

print(files)

Để lấy tên file và tên thư mục chứa file đó, chúng ta có thể truy cập vào phần tử trong tuple ở trên như sau:

dir_path=files[0]
print(dir_path)


filename=files[1]
print(filename)

Ngoài ra, chúng ta có thể giải nén tuple trên và gán biến rồi sử dụng như dưới đây.

import os
filepath = './user/dir1/user.txt'
dirname, basename = os.path.split(filepath)
print(dirname)


print(basename)

Tổng kết và thực hành

Trên đây Kiyoshi đã hướng dẫn bạn về cách lấy tên file, thư mục và đuôi file trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a>&nbsp;và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js">

Bài viết liên quan

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
Hướng dẫn dùng basename python trong PHP

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.