[英]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.