python - 从大型 csv 文件的每一行中取出最后一行?
问题描述
我有 12000 行,每行多行。我只需要在所有 12000 行中读取和写入新列
"► Контакт с пациентом | 07.02.2019 | |
► Принять в работу | 07.02.2019 | |
► Контакт с пациентом | 08.02.2019 | |
► Получить КП | 14.02.2019 | |
► ждем КП | 18.02.2019 | |
► отправил ему ответ и стоимости лекарств! через дви недели с ним связываться | 05.03.2019 | |
► арихив | 23.03.2019 | | ";
"► Контакт с пациентом | 19.06.2019 | |
► Принять в работу | 19.06.2019 | |
► Контакт с пациентом | 26.08.2019 | |
► Архив. | 10.09.2019 | | ";
我只能为一排做到这一点,就是这样。我怎样才能通过所有 12000 行做到这一点
import pandas as pd
df = pd.read_csv('/Users/gfidarov/Desktop/crosscheck/crosscheck/sheet1')
r = df.split('|')
r = r[-4:]
r = '|'.join(r)
print(r)
在这里,我可以使用 csv 库读取它,但我不能只使用最后一个。如果我尝试像使用 pandas row = row[-4:] 那样做,我会出错。我该如何解决我的问题?
import csv
with open('/Users/gfidarov/Desktop/sheet_one') as f:
reader = csv.DictReader(f, delimiter='|')
for row in reader:
print(list(row))
解决方案
对于该文件,每行的最后一行是在;
双引号 ( "
) 后以分号 ( ) 结尾的行。
所以这可能就足够了:
with open('/Users/gfidarov/Desktop/sheet_one') as f:
for line in f:
if line.strip().endswith('";'): # Ok this is the line we want...
line = line.strip().strip('";') # clean it a little
print(line)
顺便说一句,csv 尝试不起作用,因为默认情况下,双引号用于引用包含分隔符或换行符的字段,所以这里 csv 模块只会看到一个字段。
推荐阅读
- sql-server - 这个声明的结果是什么?
- python - Azure SQL 数据库的 Sqlalchemy 问题
- r - Ggplot:geom_bar 产生错误的比例
- swinject - 可以注册仅静态协议吗?
- php - Symfony 4 实体获取器返回类型
- python - 如何正确使用“setComponentModifierValue”命令在 OpenModelica 中设置双精度数组
- bokeh - 设置初始图中可见条的数量
- javascript - 在 Django 表单中使用 .submit(function) 时出现“禁止 403 - CSRF 验证失败”
- python - 从对角线开始将向量写入矩阵
- jquery - 将数据表导出到 Excel 时向 messageTop 添加消息