Hướng dẫn search keywords in csv file python - tìm kiếm từ khóa trong tệp csv python

Tôi tự hỏi nếu có một cách để tìm kiếm một danh sách các từ khóa bằng Python. Tôi có thể tìm kiếm mặc dù dữ liệu của tôi bằng PostgreSQL. Đây là mã PostgreSQL của tôi

SELECT distinct ON (id) id, year, cost, description
FROM mydata
WHERE description similar to'%((hotel)||(travel)|(taxi)|(food))%';

Tôi không biết liệu Python có phải là cách tốt nhất để làm điều đó hay không, nhưng công việc mà tôi đang tái tạo sử dụng Python và muốn gắn bó với Python.

Tôi đã có thể tìm kiếm một từ khóa nhưng không chắc chắn làm thế nào để thực hiện nhiều.

 import csv
 with open('mydata.csv', 'r') as f:
    for line in f.readlines():
        if 'food' in line:
            print(line)

tôi cần sự giúp đỡ

1) Tìm kiếm bằng nhiều từ khóa

2) Cách xuất dữ liệu trở lại CSV

Bí mật

  • 30-2022, 08:40 PM Bài cuối cùng:
  • 1
  • 2
  • 3
  • 4
  • 5

Kết hợp nhiều phần trong chuỗi

fozz

Jun-13-2022, 09:38 AM Bài cuối cùng: Fozz

Bạn có thể đặt các chuỗi được mã hóa vào các tệp .txt không?
Future_Matched_2022-02-19 to 2022-02-23.csv
Future_UnMatched_2022-02-19 to 2022-02-23.csv

Alivegamer

Tháng 5-04-2022, 12:50 sáng Bài cuối: Alivegamer

Trích xuất các bộ phận của nhiều tệp nhật ký và đặt nó vào một khung dữ liệu

Hasiro

Tháng 4-27-2022, 12:44 PM Bài cuối cùng: Hasiro
What's most efficient for such a search? im not super concerned with speed now, but if i can script it so its quick now and later when there is a years worth of files to look thru that would be great.

Chia dây trong danh sách các chuỗi

Bài viết: 9393

Chủ đề: 2222

Tham gia: Tháng 5 năm 2019May 2019

Danh tiếng: 0 0

Jesse68

import csv, os, glob

#input keywords to  search
keywords = ('113006249')

path = r'F:\VS Projects\*.csv'


for Tname in glob.glob(path):
    # print (os.path.basename(Tname))

    #read csv, and split on "," the line
    csv_file = csv.reader(open(os.path.basename(Tname), "r", encoding='utf-8'), delimiter=",")

    #loop through the csv list
    for row in csv_file:
        #if current rows 2nd value is equal to input, print that row
        if keywords == row[0]:
              print (os.path.basename(Tname))

Tháng 2-22-2022, 10:46 PM (Bài đăng này được sửa đổi lần cuối: tháng 2-22-2022, 10:46 PM bởi Cubangt.)519

Đã tìm ra mã chính xác, bây giờ tôi đã thiết lập để lưu vào CSV với dữ liệu phù hợp tôi cần.122

Bài viết: 519Jul 2017

Chủ đề: 122 16

Tham gia: tháng 7 năm 2017

Danh tiếng: 16

Không có lý do cụ thể nào cho việc không sử dụng CSV, chỉ có vẻ như lặp lại trong mỗi hàng, nhưng, có hơn 1 cách để da một con mèo và hơn 1 cách để giải quyết một giải pháp!

from pathlib import Path
mypath = '/home/pedro/Downloads/'
mydir = Path(mypath)
filelist = [filename for filename in mydir.iterdir() if filename.is_file() and filename.suffix == '.csv']
search4str = input('Enter the string you want to find ... ')
# in this case search4str = '魏敏'
files_with_search4str = []
for f in filelist:    
    with open(f)as acsvfile:
        datastring = acsvfile.read()
        if search4str in datastring:
            print('found searchforstr', searchforstr)
            # save the file path
            files_with_search4str.append(f.resolve())

Bài viết: 9393

Chủ đề: 2222

Tham gia: Tháng 5 năm 2019May 2019

Danh tiếng: 0 0

Grep của Perfringo có vẻ đơn giản hơn nhiều! Tôi thích đơn giản!

Bashbedlam thích bài đăng này

Có thể các chủ đề liên quan…1,871

Chủ đề: 88

Tham gia: tháng 6 năm 2018Jun 2018

Danh tiếng: 165 165

Nó phải là Python? Dường như với tôi rằng trong CLI, nó đơn giản hơn. Trong bash:

> grep -l "130062" *.csv

Nó trả về các tên tệp có chứa chuỗi được tìm kiếm trong thư mục hiện tại (không có đệ quy), chúng có thể được truyền hoặc ghi vào tệp. Người ta có thể gọi điều này từ Python bằng mô -đun phụ.

Tôi không phải là '-sane. Thật vậy, tôi cho đến nay 'ra' của Sane cho đến khi bạn xuất hiện một cú đánh nhỏ trên bờ biển xa xôi của Sanity.bucky Katt, Get Fuzzy Bucky Katt, Get Fuzzy

DA BISHOP: Có một giám mục đã chết khi hạ cánh. Tôi không biết ai tiếp tục đưa họ vào đây. .... Nhưng xã hội là để đổ lỗi.

Bài viết: 9393

Chủ đề: 2222

Tham gia: Tháng 5 năm 2019May 2019

Danh tiếng: 0 0

Vì vậy, cuối cùng tôi đã nhận được tất cả hơn 200 tệp đính kèm vào một thư mục và chạy tìm kiếm ở đây hoạt động, nhưng bây giờ tôi đang cố gắng viết kết quả tìm thấy vào một tệp văn bản để tôi có thể gửi nó cho người khác để xem xét ...

Cập nhật logic dường như không chạy, hoặc nếu có, nó không bao giờ trả lại bất cứ điều gì và không có lỗi

import csv, os, glob
#input keywords to  search
keywords = ('113006249')

path = r'F:\Attachments\*.csv'

for Tname in glob.glob(path):
    
    #read csv, and split on "," the line
    csv_file = csv.reader(open(Tname, "r", encoding='utf-8'), delimiter=",")

    #loop through the csv list
    for row in csv_file:
        with open(r'F:\Attachments\Results\results.txt', 'w') as f:
            if keywords == row[0]:
            # print(row)  If i just print the results out to the console, i get what i need
            # print (os.path.basename(Tname))  If i just print the results out to the console, i get what i need


                f.write(' '.join(row))  but when i try to write the results to a file, i dont get anything
                #f.write(os.path.basename(Tname))  this is also something i need in the file so we know what attachment the number was found in

Bài viết: 9393

Chủ đề: 2222

Tham gia: Tháng 5 năm 2019May 2019

Danh tiếng: 0 0

Vì vậy, cuối cùng tôi đã nhận được tất cả hơn 200 tệp đính kèm vào một thư mục và chạy tìm kiếm ở đây hoạt động, nhưng bây giờ tôi đang cố gắng viết kết quả tìm thấy vào một tệp văn bản để tôi có thể gửi nó cho người khác để xem xét ... (This post was last modified: Feb-22-2022, 10:46 PM by cubangt.)

Cập nhật logic dường như không chạy, hoặc nếu có, nó không bao giờ trả lại bất cứ điều gì và không có lỗi

Tháng 2-22-2022, 10:46 PM (Bài đăng này được sửa đổi lần cuối: tháng 2-22-2022, 10:46 PM bởi Cubangt.)519

Đã tìm ra mã chính xác, bây giờ tôi đã thiết lập để lưu vào CSV với dữ liệu phù hợp tôi cần.122

Bài viết: 519Jul 2017

Chủ đề: 122 16

Tham gia: tháng 7 năm 2017

Danh tiếng: 16

Không có lý do cụ thể nào cho việc không sử dụng CSV, chỉ có vẻ như lặp lại trong mỗi hàng, nhưng, có hơn 1 cách để da một con mèo và hơn 1 cách để giải quyết một giải pháp!

Grep của Perfringo có vẻ đơn giản hơn nhiều! Tôi thích đơn giản!
Bashbedlam thích bài đăng này Có thể các chủ đề liên quan… Chủ đề Tác giả Trả lời
Lượt xemBài cuối cùng& nbsp;1 366 Python: Re.findall để tìm nhiều trường hợp không hoạt động nhưng tìm kiếm đã hoạt động
Last Post: deanhystad
Lượt xemBài cuối cùng& nbsp;31 2,991 Python: Re.findall để tìm nhiều trường hợp không hoạt động nhưng tìm kiếm đã hoạt động
Last Post: fozz
Hướng dẫn search keywords in csv file python - tìm kiếm từ khóa trong tệp csv python
Bí mật30-2022, 08:40 PM Bài cuối cùng:0 526 Kết hợp nhiều phần trong chuỗi
Last Post: Alivegamer
Lượt xemBài cuối cùng& nbsp;4 772 Python: Re.findall để tìm nhiều trường hợp không hoạt động nhưng tìm kiếm đã hoạt động
Last Post: hasiro
Lượt xemBài cuối cùng& nbsp;3 922 Python: Re.findall để tìm nhiều trường hợp không hoạt động nhưng tìm kiếm đã hoạt động
Last Post: DeaD_EyE
Lượt xemBài cuối cùng& nbsp;7 2,424 Python: Re.findall để tìm nhiều trường hợp không hoạt động nhưng tìm kiếm đã hoạt động
Last Post: atomxkai
Lượt xemBài cuối cùng& nbsp;1 803 Python: Re.findall để tìm nhiều trường hợp không hoạt động nhưng tìm kiếm đã hoạt động
Last Post: Larz60+
Lượt xemBài cuối cùng& nbsp;10 4,010 Python: Re.findall để tìm nhiều trường hợp không hoạt động nhưng tìm kiếm đã hoạt động
Last Post: SARAOOF
Lượt xemBài cuối cùng& nbsp;1 2,161 Python: Re.findall để tìm nhiều trường hợp không hoạt động nhưng tìm kiếm đã hoạt động
Last Post: klllmmm
Lượt xemBài cuối cùng& nbsp;13 2,623 Python: Re.findall để tìm nhiều trường hợp không hoạt động nhưng tìm kiếm đã hoạt động
Last Post: vkomarag