python - 如何使用python仅搜索分隔文本文件的第一列
问题描述
搜索管道“|”的第一列 使用 python 分隔的包含 1000 万行的 .txt 文件。第一列包含电话号码。我想输出该电话号码的整行
该文件是 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()
调用只是删除实际在文件中每行末尾返回的那个'\n'
。.readline()
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)
推荐阅读
- javascript - 在 Sequelize 中,如何在使用 .then() 创建记录后正确使用 set 方法?
- python - 在 PySpark 中展平动态嵌套结构(结构内部结构)
- ios - 大小类别不适用于辅助功能调整 UIButton 的图像大小
- css - React Native justifyContent: "center", height: "100% not working
- pandas - 如何在将未堆叠的 Pandas 数据框传递给绘图函数之前将其重塑为“长”形式
- c - C:将Texf文件中的每个字符和单词计数到C中的动态数组中
- php - 警告“mysqli_connect(): (HY000/2002): Connection denied in db_connection.php on line 7 Failed
- powershell - 在 Powershell 中,如何从 API 响应返回的对象中提取特定文本?
- c++ - 如何在 C++ 中处理 LinkedList 的指针
- unix - pmap 手册页中的奇怪行