Làm thế nào để bạn tách một dấu gạch dưới tên tệp trong python?

Đầu tiên tôi sẽ giải nén tên tập tin. Tôi muốn tách nó ra khỏi phần mở rộng. Bạn có thể đi một cách dễ dàng bằng cách làm

Nội dung chính Hiển thị

  • Tách chuỗi theo không gian
  • Chia tách trong lần xuất hiện đầu tiên
  • Tách các dòng từ một tệp văn bản trong Python
  • Tách Chuỗi theo dòng mới [\n]
  • Tách chuỗi theo tab [\ t]
  • Tách chuỗi bằng dấu phẩy [,]
  • Tách chuỗi có nhiều dấu phân cách
  • Tách một chuỗi thành một danh sách
  • tham số maxsplit
  • Tách một chuỗi thành mảng các ký tự
  • Python split[] sử dụng chuỗi con
  • Tìm kiếm một công việc Python?
  • Làm cách nào để tách tên tệp và phần mở rộng trong Python?
  • Làm thế nào để bạn tách một dấu gạch dưới tên tệp trong Python?
  • Làm cách nào để bạn tách danh sách tệp trong Python?
  • Làm cách nào để bạn tách một tệp văn bản trong Python?

path = "Planning_Group_20180108.ind"
filename, ext = path.split["."]

Giả sử rằng đường dẫn thực sự chỉ là tên tệp và phần mở rộng. Nếu tôi muốn giữ an toàn và độc lập với nền tảng, tôi sẽ sử dụng mô-đun os cho điều đó

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

Và sau đó giải nén "root" và phần mở rộng

root, ext = os.path.splitext[filename]

Điều đó sẽ khiến tôi có Planning_Group_20180108 với quyền root. Để loại bỏ "_20180108", chúng ta cần tách chuỗi bằng dấu phân cách "_", đi từ đầu bên phải và chỉ thực hiện một lần. tôi sẽ dùng. rsplit[] của chuỗi, cho phép tôi chỉ định dấu phân cách và số lần tôi muốn thực hiện phân tách

what_i_want, the_rest = root.rsplit["_", 1]

what_i_want phải chứa phía bên trái của Planning_Group_20180108 được cắt ở vị trí của "_" đầu tiên được tính từ phía bên phải, do đó, nó phải là Planning_Group

Cách viết tương tự 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]

Tái bút. Bạn có thể bỏ qua phần giải nén root và extension nếu chắc chắn rằng extension đó 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 nghĩ đến trường hợp có nhiều tiện ích mở rộng, như /path/to/file/ which_has_a. nhiều. của. Chu kỳ. and_extensions. Trong trường hợp đó, bạn có muốn lấy which_has_a không. nhiều. của. Chu kỳ. và, hoặc which_has? . Nếu bạn cần cái sau, bạn có thể muốn giải nén root bằng cách thực hiện tên tệp. tách ra[". ", 1] thay vì sử dụng os. con đường. splitext[]

thẩm quyền giải quyết

hệ điều hành. con đường. tách [đường dẫn],

hệ điều hành. con đường. splitext[đường dẫn]

str. rsplit[sep=None, maxsplit=-1]

Tôi có 2 tệp hình dạng, mỗi tệp được đặt trong một thư mục khác nhau

  • "C. \. \Thư mục O\Đức [O]. shp"
  • "C. \. \Thư mục P\Đức Berlin [P]. shp"

Đoạn script sau tìm các shapefile và chứa một vài điều kiện if. Điều kiện if đầu tiên loại bỏ "[O]. shp" và "[P]. shp" từ các shapefile. Điều này hoạt động hoàn hảo

Tôi muốn thiết lập một điều kiện if thứ hai theo đó tên đầu tiên của cả hai tệp hình dạng khớp nhau, vì vậy trong trường hợp này, nó sẽ là "Đức". Tôi nghĩ chuỗi. phương pháp phân tách sẽ là lý tưởng nhưng rõ ràng là tôi không triển khai nó một cách chính xác

Bạn có thể chỉ ra sai lầm của tôi?

def run[]:
    for o in glob.glob["C:\Users\me\Desktop\Test\Folder O" + "\*.shp"]:
        for p in glob.glob["C:\Users\me\Desktop\Test\Folder P" + "\*.shp"]:
            if os.path.basename[o].rstrip["[O].shp"] == os.path.basename[p].rstrip["[P].shp"]:
                print p
                # works perfectly up to here

                if os.path.basename[o].split[o[[1]]] == os.path.basename[p].split[p[1]]]:
                    print p

Phương thức split[] trong Python trả về danh sách các từ trong chuỗi/dòng, được phân tách bằng chuỗi phân cách. Phương thức này sẽ trả về một hoặc nhiều chuỗi mới. Tất cả các chuỗi con được trả về trong kiểu dữ liệu danh sách

cú pháp

Tham sốMô tảdấu phân cáchLà một dấu phân cách. Chuỗi phân tách tại dấu phân cách được chỉ định này. Nếu không được cung cấp thì bất kỳ khoảng trắng nào cũng là dấu phân cách. maxsplitIt là một số, cho biết chúng tôi chia chuỗi thành số lần tối đa được cung cấp. Nếu nó không được cung cấp thì không có giới hạn. returnThe split[] ngắt chuỗi tại dấu tách và trả về danh sách các chuỗi

Nếu không có dấu tách nào được xác định khi bạn gọi hàm, khoảng trắng sẽ được sử dụng theo mặc định. Nói một cách đơn giản hơn, dấu phân cách là một ký tự xác định sẽ được đặt giữa mỗi biến. Hành vi phân tách trên một chuỗi rỗng phụ thuộc vào giá trị của sep. Nếu sep không được chỉ định hoặc được chỉ định là Không, kết quả sẽ là một danh sách trống. Nếu sep được chỉ định là một chuỗi bất kỳ, kết quả sẽ là một danh sách chứa một phần tử là một chuỗi rỗng

Tách chuỗi theo không gian

Phương thức split[] trong Python không có đối số phân tách trên khoảng trắng

ví dụ

đầu ra

Chia tách trong lần xuất hiện đầu tiên

Trong ví dụ sau, nó sẽ chỉ chia theo 2 khoảng trắng đầu tiên

ví dụ

đầu ra

Tách các dòng từ một tệp văn bản trong Python

Chương trình Python sau đọc một tệp văn bản và chia nó thành các từ đơn lẻ trong python

ví dụ

Tách Chuỗi theo dòng mới [\n]

đầu ra

Tách chuỗi theo tab [\ t]

đầu ra

Tách chuỗi bằng dấu phẩy [,]

đầu ra

Tách chuỗi có nhiều dấu phân cách

Trong trường hợp này, Python sử dụng Biểu thức chính quy

ví dụ

đầu ra

Tách một chuỗi thành một danh sách

Chương trình Python sau tách một chuỗi thành Danh sách

ví dụ

đầu ra

tham số maxsplit

Tách chuỗi thành một danh sách có tối đa 2 mục

đầu ra

Trong chương trình trên, maxsplit là 2, hai chuỗi đầu tiên được tách ra và các chuỗi còn lại nằm trong cùng một chuỗi

Tách một chuỗi thành mảng các ký tự

đầu ra

Python split[] sử dụng chuỗi con

Trích xuất một chuỗi sau một chuỗi con cụ thể

Trong ví dụ trên, bạn có thể thấy hàm split[] trả về phần tiếp theo của chuỗi bằng một chuỗi con cụ thể

Tại đây, bạn có thể thấy hàm split[] trả về phần trước của chuỗi bằng cách sử dụng một chuỗi con cụ thể

Tìm kiếm một công việc Python?

Rất có thể bạn sẽ cần chứng minh rằng bạn biết cách làm việc với Python. Các câu hỏi phỏng vấn Python này được thiết kế đặc biệt để giúp bạn làm quen với bản chất của các câu hỏi mà bạn có thể gặp phải trong cuộc phỏng vấn về chủ đề Lập trình Python. Dưới đây là các câu hỏi Phỏng vấn Python mẫu mục tiêu hàng đầu và câu trả lời của chúng được cung cấp ngay bên dưới cho chúng. Những câu hỏi mẫu này được đóng khung bởi nhóm chuyên gia của chúng tôi, những người đào tạo về Python để cung cấp cho bạn ý tưởng về loại câu hỏi có thể được hỏi trong cuộc phỏng vấn

Chủ Đề