Hướng dẫn split filename by underscore python - tách tên tệp bằng dấu gạch dưới python

Đầu tiên tôi sẽ trích xuất tên tệp. Tôi đã chia nó từ phần mở rộng. Bạn có thể đi theo cách dễ dàng bằng cách làm:

path = "Planning_Group_20180108.ind"
filename, ext = path.split(".")

Nó giả định rằng đường dẫn thực sự chỉ là một tên tệp và phần mở rộng. Nếu tôi muốn giữ an toàn và độc lập nền tảng, tôi sẽ sử dụng mô -đun HĐH cho điều đó:path is actually only a filename and extension. If I'd want to stay safe and platform independent, I'd use os module for that:

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)

Và sau đó trích xuất "gốc" và mở rộng:

root, ext = os.path.splitext(filename)

Điều đó sẽ để lại cho tôi với kế hoạch_group_20180108 dưới dạng gốc. Để loại bỏ "_20180108" Chúng ta cần phân tách chuỗi theo dấu phân cách "_", đi từ đầu bên phải và chỉ làm nó một lần. Tôi sẽ sử dụng phương thức chuỗi.Planning_Group_20180108 as root. To discard "_20180108" we need to split string by "_" delimiter, going from the right end, and do it only once. I would use .rsplit() method of string, which lets me specify delimiter, and number of times I want to make splits.

what_i_want, the_rest = root.rsplit("_", 1)

what_i_want phải chứa bên trái của kế hoạch_group_20180108 cắt thay cho "_" đầu tiên từ bên phải, vì vậy nó phải là lập kế hoạch_group should contain left side of Planning_Group_20180108 cut in place of first "_" counting from right side, so it should be Planning_Group

Cách viết nhỏ gọn hơn, nhưng không dễ đọc, sẽ là:

what_i_want = os.path.splitext(os.path.split("/my/path/to/Planning_Group_20180108.ind")[1])[0].rsplit("_", 1)

PS. Bạn có thể bỏ qua phần với trích xuất gốc và phần mở rộng nếu bạn chắc chắn, phần mở rộng đó sẽ không chứa dấu gạch dưới. Nếu bạn không chắc chắn về điều đó, bước này sẽ là cần thiết. Ngoài ra, bạn cần phải nghĩ về trường hợp với nhiều tiện ích mở rộng, như /path/to/file/which_has_a.lot.of.periods.and_extents. Trong trường hợp đó, bạn có muốn nhận được what_has_a.lot.of.periods.and hoặc what_has? Hãy nghĩ về nó trong khi lập kế hoạch ứng dụng của bạn. Nếu bạn cần sau này, bạn có thể muốn trích xuất root bằng cách thực hiện fileName.split (".", 1) thay vì sử dụng os.path.splitext ()/path/to/file/which_has_a.lot.of.periods.and_extentions. In that case would you like to get which_has_a.lot.of.periods.and, or which_has? Think of it while planning your app. If you need latter, you may want to extract root by doing filename.split(".", 1) instead of using os.path.splitext()

reference:

os.path.split(path),

os.path.splitext(path)

str.rsplit (sep = none, maxsplit = -1)

Nội dung

  • Giới thiệu
  • Ví dụ 1: Chuỗi phân chia theo dấu gạch dưới
  • Ví dụ 2: Chia chuỗi phân chia theo một hoặc nhiều dấu gạch dưới
  • Bản tóm tắt

Bạn có thể chia một chuỗi trong python bằng phương thức String.split ().

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu cách phân chia một chuỗi bằng cách nhấn mạnh

root, ext = os.path.splitext(filename)
8 trong Python bằng các phương thức String.Split () và Re.Split ().String.split() and re.split() methods.

Tham khảo Chuỗi phân chia Python để biết Cú pháp và cách sử dụng cơ bản của phương thức String.Split ().

Ví dụ 1: Chuỗi phân chia theo dấu gạch dưới

Trong ví dụ này, chúng tôi sẽ lấy một chuỗi với các mục/từ được phân tách bằng ký tự dấu gạch dưới

root, ext = os.path.splitext(filename)
8, chia chuỗi và lưu trữ các mục trong danh sách.

Chương trình Python

str = '52_841_63_24_76_49'

#split string by _
items = str.split('_')

print(items)

Chạy

Đầu ra

['52', '841', '63', '24', '76', '49']

Ví dụ 2: Chia chuỗi phân chia theo một hoặc nhiều dấu gạch dưới

Trong ví dụ này, chúng tôi sẽ lấy một chuỗi với các mục/từ được phân tách bởi một hoặc nhiều ký tự dấu gạch dưới, chia chuỗi và lưu trữ các mục trong danh sách.

Chúng tôi sẽ sử dụng gói Python

what_i_want, the_rest = root.rsplit("_", 1)
0 trong chương trình sau.
what_i_want, the_rest = root.rsplit("_", 1)
1 Trả về danh sách các mục được phân chia từ
what_i_want, the_rest = root.rsplit("_", 1)
2 dựa trên
what_i_want, the_rest = root.rsplit("_", 1)
3.

Chương trình Python

import re

str = '52_841__63____24_76______49'

#split string by _
items = re.split('_+', str)

print(items)

Chạy

Đầu ra

Đầu ra

['52', '841', '63', '24', '76', '49']

Ví dụ 2: Chia chuỗi phân chia theo một hoặc nhiều dấu gạch dưới

Trong ví dụ này, chúng tôi sẽ lấy một chuỗi với các mục/từ được phân tách bởi một hoặc nhiều ký tự dấu gạch dưới, chia chuỗi và lưu trữ các mục trong danh sách.

Chúng tôi sẽ sử dụng gói Python

what_i_want, the_rest = root.rsplit("_", 1)
0 trong chương trình sau.
what_i_want, the_rest = root.rsplit("_", 1)
1 Trả về danh sách các mục được phân chia từ
what_i_want, the_rest = root.rsplit("_", 1)
2 dựa trên
what_i_want, the_rest = root.rsplit("_", 1)
3.

Biểu thức chính quy what_i_want, the_rest = root.rsplit("_", 1) 4 đại diện cho một hoặc nhiều dấu gạch dưới. Vì vậy, một hoặc nhiều dấu gạch dưới được coi là một dấu phân cách.

  • Một quặng tiếp giáp hơn được coi là một dấu phân cách duy nhất.
  • Bản tóm tắt
  • Trong hướng dẫn này về các ví dụ Python, chúng tôi đã học cách phân chia một chuỗi bằng cách nhấn mạnh bằng các phương thức String.Split () và Re.Split ().
  • Hướng dẫn liên quan
  • Chuỗi phân chia Python thành các khối chiều dài cụ thể

Điều sau đây sẽ làm việc cho bạn

s = "Planning_Group_20180108.ind"
'_'.join(s.split('_')[: -1])

Đầu tiên tôi sẽ trích xuất tên tệp. Tôi đã chia nó từ phần mở rộng. Bạn có thể đi theo cách dễ dàng bằng cách làm:

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)
0

Nó giả định rằng đường dẫn thực sự chỉ là một tên tệp và phần mở rộng. Nếu tôi muốn giữ an toàn và độc lập nền tảng, tôi sẽ sử dụng mô -đun HĐH cho điều đó:path is actually only a filename and extension. If I'd want to stay safe and platform independent, I'd use os module for that:

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)
1

Và sau đó trích xuất "gốc" và mở rộng:

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)
2

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)
3

Bạn có thể sử dụng

what_i_want, the_rest = root.rsplit("_", 1)
0:

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)
4

Output:

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)
5

Sử dụng regex ở đây là khá pythonic.

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)
6


Gợi ý: 2

Trong hướng dẫn này về các ví dụ Python, chúng tôi đã học cách phân chia một chuỗi bằng cách nhấn mạnh bằng các phương thức String.split () và Re.Split ()., Trong hướng dẫn này, chúng tôi sẽ tìm hiểu cách phân chia một chuỗi bằng cách nhấn mạnh .Split () và re.split ()., Trong ví dụ này, chúng ta sẽ lấy một chuỗi với các mục/từ được phân tách bởi một hoặc nhiều ký tự dấu gạch dưới, chia chuỗi và lưu trữ các mục trong danh sách. Chúng tôi sẽ lấy một chuỗi với các mục/từ được phân tách bằng ký tự gạch dưới _, chia chuỗi và lưu trữ các mục trong danh sách.

Chương trình Python

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)
7

Đầu ra

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)
8


Gợi ý: 3

Bạn có thể sử dụng chức năng phân chia chuỗi python () để chia một chuỗi (bằng dấu phân cách) thành một danh sách các chuỗi. Để phân chia một chuỗi bằng cách nhấn mạnh trong Python, hãy vượt qua ký tự "_" dưới dạng dấu phân cách cho hàm chia (). Trong Python với sự trợ giúp của các ví dụ., Ở đây, chúng tôi vượt qua nhấn mạnh làm dấu phân cách cho hàm chia chuỗi ()., Bạn cũng có thể chỉ định số lượng phân tách tối đa được thực hiện bằng tham số MaxSplit. Theo mặc định, hàm chia chuỗi () làm cho tất cả các chia tách có thể.

Sau đây là cú pháp -

fullpath = "this/could/be/a/full/path/Planning_Group_20180108.ind"
path, filename = os.path.split(fullpath)
9

Ở đây, chúng tôi vượt qua nhấn mạnh như là dấu phân cách cho hàm

what_i_want, the_rest = root.rsplit("_", 1)
6.

root, ext = os.path.splitext(filename)
0

Output:

root, ext = os.path.splitext(filename)
1


Gợi ý: 4

Để phân chia một chuỗi bằng cách nhấn mạnh trong Python, hãy truyền ký tự "_" dưới dạng dấu phân cách cho hàm chia (). Nó trả về một danh sách các chuỗi do phân tách chuỗi ban đầu về các lần xuất hiện của "_". Hãy cùng nhìn vào một số ví dụ. Ở đây, chúng tôi vượt qua nhấn mạnh như là dấu phân cách cho hàm chia () chuỗi. , 2 ngày trước ngày 25 tháng 4 năm 2022 & nbsp; · Cú pháp là: .Split (SEP, MAXSplit) trong cú pháp trên: là bất kỳ chuỗi Python hợp lệ nào, SEP là bộ phân cách mà bạn muốn chia. Trong ví dụ này, chúng tôi sẽ lấy một chuỗi với các mục/từ được phân tách bởi một hoặc nhiều ký tự dấu gạch dưới, chia chuỗi và lưu trữ các mục trong danh sách. lại. , 1 tuần trước, bạn có thể sử dụng hàm phân chia chuỗi python () để chia một chuỗi (bằng dấu phân cách) thành một danh sách các chuỗi. Để phân chia một chuỗi bằng cách nhấn mạnh trong Python, hãy truyền ký tự "_" dưới dạng dấu phân cách cho hàm chia (). Nó trả về một danh sách các chuỗi do phân tách chuỗi ban đầu về các lần xuất hiện của "_". , Hãy để chỉ chia chuỗi ở trên thành hai phần khi xảy ra dấu gạch dưới, "_" bắt đầu từ bên trái. Để chia chuỗi thành hai phần, MaxSplit nên là 1, bởi vì chúng tôi chỉ tạo một phần phân chia dẫn đến hai chuỗi. Bạn có thể thấy rằng danh sách kết quả chỉ có hai chuỗi.

root, ext = os.path.splitext(filename)
2

root, ext = os.path.splitext(filename)
3

root, ext = os.path.splitext(filename)
4

root, ext = os.path.splitext(filename)
5

root, ext = os.path.splitext(filename)
6

root, ext = os.path.splitext(filename)
3


Làm thế nào để bạn phân chia dấu gạch dưới trong Python?

Để phân chia một chuỗi bằng cách nhấn mạnh trong Python, hãy truyền ký tự "_" dưới dạng dấu phân cách cho hàm chia ().Nó trả về một danh sách các chuỗi do phân tách chuỗi ban đầu về các lần xuất hiện của "_".pass the underscore character "_" as a delimiter to the split() function. It returns a list of strings resulting from splitting the original string on the occurrences of "_" .

Làm thế nào để bạn chia một chuỗi gạch dưới?

Phương thức chia () để chia một chuỗi bằng dấu gạch dưới, ví dụ:my_list = my_str.tách ra('_') .STR.Phương pháp phân chia sẽ phân chia chuỗi trên mỗi lần xuất hiện của một dấu gạch dưới và sẽ trả về một danh sách chứa kết quả. to split a string by underscore, e.g. my_list = my_str. split('_') . The str. split method will split the string on each occurrence of an underscore and will return a list containing the results.

Dấu gạch dưới là một dấu phân cách?

Vì vậy, một hoặc nhiều dấu gạch dưới được coi là một dấu phân cách.Một quặng tiếp giáp hơn được coi là một dấu phân cách duy nhất.one or more underscores is considered as a delimiter. One ore more adjacent underscores are considered as a single delimiter.

Làm thế nào để bạn loại bỏ dấu gạch dưới từ một chuỗi trong python?

Bạn có thể sử dụng hàm LSTRIP () Chuỗi để loại bỏ dấu gạch dưới từ một chuỗi trong Python.Hàm Lstrip () được sử dụng để loại bỏ các ký tự từ đầu chuỗi và theo mặc định sẽ loại bỏ các ký tự khoảng trắng hàng đầu.use the string lstrip() function to remove leading underscores from a string in Python. The lstrip() function is used to remove characters from the start of the string and by default removes leading whitespace characters.