Trích xuất số từ tên tệp python

Chương trình lấy tên của một tệp từ người dùng và in tất cả các số có trong tệp văn bản

Giải pháp vấn đề

1. Lấy tên tệp từ người dùng
2. Đọc từng dòng từ tệp và chia dòng để tạo thành một danh sách các từ
3. Sử dụng vòng lặp for để duyệt qua các từ trong danh sách và một vòng lặp for khác để duyệt qua các chữ cái trong từ
3. Kiểm tra xem chữ cái do người dùng cung cấp có phải là một chữ số không và nếu có, hãy in nó
4. Lối ra

Chương trình/Mã nguồn

Đây là mã nguồn của Chương trình Python để in tất cả các số có trong tệp văn bản. Đầu ra chương trình cũng được hiển thị bên dưới

Biểu thức chính quy là một nhóm ký tự cho phép bạn sử dụng mẫu tìm kiếm để tìm một chuỗi hoặc một tập hợp các chuỗi. RegEx là tên gọi khác của biểu thức chính quy

Mô-đun re trong Python được sử dụng để hoạt động với các biểu thức chính quy

Trong bài viết này, chúng ta sẽ biết cách trích xuất các số thập phân từ một chuỗi trong python bằng các biểu thức chính quy

Chúng tôi sử dụng \d+\. \d+ biểu thức chính quy trong python để lấy các ký tự không có chữ số từ một chuỗi

Ở đâu,

  • \d trả về kết quả khớp trong đó chuỗi chứa các chữ số (các số từ 0 9)

  • + ngụ ý không hoặc nhiều lần xuất hiện của các ký tự

  • \ báo hiệu một chuỗi đặc biệt (cũng có thể được sử dụng để thoát khỏi các ký tự đặc biệt)

  • là bất kỳ ký tự nào (ngoại trừ ký tự xuống dòng)

Sử dụng hàm findall()

Trong ví dụ sau, giả sử ‘Nhiệt độ hôm nay là 40. 5 độ. ’ như một chuỗi. Ở đây, chúng ta cần trích xuất số thập phân 40. 5 từ chuỗi

Ví dụ

Sau đây là mã ví dụ mà qua đó các số thập phân được trích xuất từ ​​​​một chuỗi trong python. Chúng tôi bắt đầu bằng cách nhập mô-đun biểu thức chính quy

import re

Sau đó, chúng tôi đã sử dụng hàm findall() được nhập từ mô-đun re

import re string = "Today's temperature is 40.5 degrees." x=re.findall("\d+\.\d+",string) print(x)

Ở đó. Hàm findall() trả về một danh sách chứa tất cả các kết quả khớp, đó là danh sách các chuỗi không có chữ số

Để lấy danh sách tất cả các số trong Chuỗi, hãy sử dụng biểu thức chính quy '[0-9]+' với re. phương thức findall(). [0-9] đại diện cho một biểu thức chính quy để khớp với một chữ số trong chuỗi. [0-9]+ đại diện cho các chuỗi chữ số liên tục có độ dài bất kỳ

numbers = re.findall('[0-9]+', str)

trong đó str là chuỗi mà chúng ta cần tìm các số. lại. findall() trả về danh sách các chuỗi khớp với biểu thức chính quy

ví dụ 1. Lấy danh sách tất cả các số trong Chuỗi

Trong ví dụ sau, chúng ta sẽ lấy một chuỗi, We live at 9-162 Malibeu. My phone number is 666688888., và tìm tất cả các số, ['9', '162', '666688888'], có trong chuỗi

Chương trình Python

import re

str = 'We live at 9-162 Malibeu. My phone number is 666688888.'
#search using regex
x = re.findall('[0-9]+', str)
print(x)
Chạy

đầu ra

['9', '162', '666688888']

ví dụ 2. Lấy danh sách tất cả các chữ số liên tục trong Chuỗi

Trong ví dụ sau, chúng ta sẽ lấy một chuỗi, We four guys, live at 2nd street of Malibeu. I had a cash of $248 in my pocket. I got a ticket with serial number 88796451-52., và tìm tất cả các số, ['2', '248', '88796451', '52'], có trong chuỗi

Chương trình Python

import re

str = 'We four guys, live at 2nd street of Malibeu. I had a cash of $248 in my pocket. I got a ticket with serial number 88796451-52.'
#search using regex
x = re.findall('[0-9]+', str)
print(x)
Chạy

đầu ra

['2', '248', '88796451', '52']

Bản tóm tắt

Trong hướng dẫn về Ví dụ Python này, chúng ta đã học cách lấy tất cả các số tạo thành một chuỗi dưới dạng danh sách, sử dụng Biểu thức chính quy Python, với sự trợ giúp của các chương trình ví dụ

Làm cách nào tôi có thể chỉ trích xuất các số từ các tệp này bằng Python?

bạn có thể sử dụng các biểu thức thông thường

regex = re.compile(r'\d+')

Sau đó, để có được các chuỗi phù hợp

________số 8_______

Điều này sẽ trả về một danh sách các chuỗi có chứa các số. Nếu bạn thực sự muốn số nguyên, bạn có thể sử dụng int

[int(x) for x in regex.findall(filename)]

Nếu chỉ có 1 số trong mỗi tên tệp, bạn có thể sử dụng regex.search(filename).group(0) (nếu bạn chắc chắn rằng nó sẽ tạo ra kết quả khớp). Nếu không tìm thấy kết quả phù hợp, dòng trên sẽ tạo ra AttributeError nói rằng NoneType không có thuộc tính group

Python cũng hỗ trợ xử lý tệp và cho phép người dùng xử lý tệp i. e. , để đọc và ghi tệp, cùng với nhiều tùy chọn xử lý tệp khác, để thao tác trên tệp. Xử lý tệp dữ liệu trong Python được thực hiện ở hai loại tệp. tệp văn bản (. txt) Tệp nhị phân (. bin phần mở rộng) Ở đây chúng tôi đang hoạt động trên. txt trong Python. Thông qua chương trình này, chúng tôi có thể trích xuất các số từ nội dung trong tệp văn bản và thêm tất cả chúng và in kết quả

Sử dụng mô-đun RegEx là cách nhanh nhất. >>> nhập lại. Giả sử rằng chuỗi chứa số nguyên và số dấu phẩy động cũng như bên dưới − >>> s='my age is 25

Phương pháp số 1. Sử dụng hiểu List + isdigit() + split() Vấn đề này có thể được giải quyết bằng cách sử dụng hàm split để chuyển chuỗi thành danh sách và sau đó hiểu danh sách giúp chúng ta lặp qua danh sách và hàm isdigit giúp lấy chữ số ra khỏi chuỗi. filter_none. biên tập. đóng

nhập os f_name, f_ext = os. con đường. splitext('tệp. txt') print (f_name) Sau khi viết đoạn mã trên (Python lấy tên tệp không có phần mở rộng), bạn sẽ in “f_name” sau đó đầu ra sẽ xuất hiện dưới dạng “tệp”. Ở đây tên file sẽ được chia làm 2 và khi in f_name nó sẽ bỏ phần mở rộng

data = open('TestData. txt'). read() #index of string counter = 1 if (dữ liệu. tìm ('X/Y=')==1). #extracts đoạn ra khỏi chuỗi line = data[r+6. r+14] r = dữ liệu. bộ đếm find('X/Y=') += 1 dòng in khác. r = dữ liệu. find('X/Y')`nhập mã tại đây` line = data[r+6. r+14] cho x trong khoảng(0,bộ đếm). bộ đếm in dòng in

với mở ('lorem. txt', 'rt') dưới dạng tệp của tôi. # Mở lorem. txt để đọc nội dung văn bản = myfile. read() # Đọc toàn bộ file thành chuỗi print(contents) # In chuỗi. Ghi chú. Thụt đầu dòng rất quan trọng trong Python. Các chương trình Python sử dụng khoảng trắng ở đầu dòng để xác định phạm vi, chẳng hạn như một khối mã

Tiếp cận. Ý tưởng là sử dụng thư viện Python re để trích xuất các chuỗi con từ chuỗi đã cho khớp với mẫu [0-9]+. Mẫu này sẽ trích xuất tất cả các ký tự khớp từ 0 đến 9 và dấu + cho biết một hoặc nhiều lần xuất hiện của các ký tự liên tục

Mở tệp ở chế độ 'đọc'. Khai báo một danh sách Python 'từ'. Tìm nạp một dòng từ tệp. Tách trên dòng bằng hàm ‘split()’ và lưu trữ nó trong danh sách Python tạm thời

Python - Lấy danh sách các số từ Chuỗi - Để lấy danh sách tất cả các số trong Chuỗi, hãy sử dụng cụm từ thông dụng '[0-9]+' với re. phương thức findall(). [0-9] đại diện cho một biểu thức chính quy để khớp với một chữ số trong chuỗi

Nhìn vào bản pdf, có vẻ như cách hành động tốt nhất là bằng cách nào đó trích xuất số trang từ mục lục, sau đó sử dụng chúng để chia nhỏ tệp. Mục lục nằm ở trang 3 và 4 trong pdf, có nghĩa là 2 và 3 trong danh sách PdfFileReader của PageObjects

Trong mô-đun zipfile của Python, lớp ZipFile cung cấp một hàm thành viên để trích xuất tất cả nội dung lưu trữ ZIP. Để giải nén một tệp bằng Python, hãy sử dụng ZipFile. phương thức giải nén (). Phương thức extractall() lấy đường dẫn, thành viên, pwd làm đối số và trích xuất tất cả nội dung

Trừ khi bạn có lý do cụ thể để viết hoặc hỗ trợ Python 2, chúng tôi khuyên bạn nên làm việc với Python 3. Đối với Microsoft Windows, có thể tải xuống Python 3 từ trang web chính thức của Python. Khi cài đặt, hãy đảm bảo cả hai tùy chọn "Cài đặt trình khởi chạy cho tất cả người dùng" và "Thêm Python vào PATH" đều được chọn, như trong hình bên dưới

Cách trích xuất dữ liệu từ các thành phần HTML riêng lẻ của trang web. Để trích xuất các phần tử HTML riêng lẻ từ biến read_content của chúng tôi, chúng tôi cần sử dụng một thư viện Python khác có tên là Beautifulsoup. Beautifulsoup là một gói Python có thể hiểu cú pháp và các phần tử HTML

tổng = 0 với mở ('đầu vào. txt', 'r') dưới dạng đầu vào, mở ('đầu ra. txt', 'w') dưới dạng đầu ra. cho dòng trong inp. thử. num = float (dòng) tổng += num outp. viết (dòng) ngoại trừ ValueError. print('{} không phải là số. '. format(dòng)) print('Tổng tất cả các số. {}'. định dạng (tổng cộng)) chia sẻ. Chia sẻ một liên kết đến câu trả lời này. Sao chép đường dẫn

Tôi không chắc bạn đang hỏi gì ở đây, tệp chỉ chứa số hoặc số có chữ cái để bạn chỉ trích xuất các số và tính tổng. Giả sử tệp chỉ có số, sử dụng open() trong hàm dựng sẵn để trích xuất nội dung từ tệp văn bản

Cách đọc một dòng cụ thể từ tệp văn bản trong Python; . Thêm một số văn bản vào tệp văn bản trong Python. Để thêm văn bản vào tệp văn bản, chúng ta có thể sử dụng hàm write(). Đây là một ví dụ đơn giản về Cách thêm văn bản vào tệp văn bản trong Python

Một chương trình Python có thể đọc tệp văn bản bằng hàm open() tích hợp. Ví dụ chương trình Python 3 dưới đây mở lorem. txt để đọc ở chế độ văn bản, đọc nội dung vào một biến chuỗi có tên là nội dung, đóng tệp và in dữ liệu

Làm cách nào để trích xuất dữ liệu từ tên tệp trong Python?

Ví dụ 1. Sử dụng mô-đun hệ điều hành .
nhập os # tên tệp có phần mở rộng file_name = os. con đường. tên cơ sở ('/root/tệp. ext') # tên tệp không có phần mở rộng print(os. con đường. splitext(file_name)[0]) Chạy mã
nhập os print(os. con đường. splitext(file_name)) Chạy mã
từ pathlib nhập Đường dẫn in (Đường dẫn ('/ root/file. máy lẻ'). gốc) Mã chạy

Làm cách nào để trích xuất số từ tệp văn bản trong Python bằng biểu thức chính quy?

Python Regex – Lấy danh sách tất cả các số từ chuỗi. Để lấy danh sách tất cả các số trong Chuỗi, sử dụng biểu thức chính quy '[0-9]+' với re. phương thức findall() . [0-9] đại diện cho một biểu thức chính quy để khớp với một chữ số trong chuỗi.

Làm cách nào để trích xuất dữ liệu cụ thể từ tệp văn bản trong Python?

Cách trích xuất các phần cụ thể của tệp văn bản bằng Python .
Đảm bảo bạn đang sử dụng Python 3
Đọc dữ liệu từ tệp văn bản
Sử dụng "với mở"
Đọc các tệp văn bản theo từng dòng
Lưu trữ dữ liệu văn bản trong một biến
Tìm kiếm văn bản cho một chuỗi con
Kết hợp các biểu thức chính quy
Để tất cả chúng cùng nhau

Làm cách nào để lấy đường dẫn tệp từ tên tệp trong Python?

Để có được Thư mục làm việc hiện tại bằng Python, hãy sử dụng os. phương thức getcwd() . Hàm này của mô-đun Python OS trả về chuỗi chứa đường dẫn tuyệt đối đến thư mục làm việc hiện tại.