簡體   English   中英

如何使用 python 僅搜索分隔文本文件的第一列

[英]How to search through only the first column of a delimited text file using python

搜索管道“|”的第一列包含 1000 萬行的 delimited.txt 文件,使用 python。 第一列包含電話號碼。 我想 output 該電話號碼的整行

該文件是 5GB.txt 文件,我無法在 ms excel 或 ms 訪問中打開它。 所以我想編寫一個 python 代碼,它可以搜索文件並打印出與特定電話號碼匹配的整行。 電話號碼在第一列。 我寫了一個代碼,但它搜索整個文件並且非常慢。 我只想搜索第一列,我的搜索項是電話號碼。

f = open("F:/.../master.txt","rt")      # open file master.txt
for line in f:                      # check each line in the file handle f
 if '999995555' in line:           # if a particular phone number is found
   print(line)                   # print the entire row
f.close()                            # close file

我希望將整行打印在屏幕上,其中第一列包含我正在搜索的電話號碼。 但這需要很多時間,因為我不知道代碼,無法搜索該列。

那么你在正確的軌道上。 由於它是一個 5GB 的文件,您可能希望避免為此分配 5GB 的 RAM。 您可能最好使用.readline() ,因為它是專為您的場景(一個大文件)而設計的。

像下面這樣的東西應該可以解決問題,請注意.readline()將返回''文件末尾和'\n'空行。 .strip()調用只是刪除.readline()在文件中實際每行末尾返回的'\n'

def search_file_line_prefix(path, search_prefix):
    with open(path, 'r') as file_handle:
        while (True):
            line = file_handle.readline()
            if line == '':
                break
            if line.startswith(search_prefix):
                yield line.strip()

for result in search_file_line_prefix('file_path', 'phone number'):
    print(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM