python - Python:仅针对文件中的最后一行去除双引号和多个额外的分隔符
问题描述
要求:仅删除 S3 文件中最后一行的双引号和额外分隔符
S3 中的文件:
"MT"|"Montana"|"2018-01-16"|"N"
"NV"|"Nevada"|"2018-01-16"|"N"
"CA"|"California"|"2018-01-16"|"N"
"NJ"|"New Jersey"|"2018-01-16"|"N"
"TR"|"4"||||
S3 中的预期输出文件
"MT"|"Montana"|"2018-01-16"|"N"
"NV"|"Nevada"|"2018-01-16"|"N"
"CA"|"California"|"2018-01-16"|"N"
"NJ"|"New Jersey"|"2018-01-16"|"N"
TR|4
这里的事情是一些文件可以有更多的列,因此更像"TR"|"4"|||||
. 我需要输出为TR|4
我在本地尝试过以下...
同样在它下方,仅删除"
但不是所有尾随|
file = "/Downloads/file.txt"
lines = open(file, 'r').readlines()
new_last_line = (lines[-1].strip('|'))
new_last_line = new_last_line.replace('"', '')
lines[-1] = new_last_line
open(file, 'w').writelines(lines)
编辑:解决方案:我已经实现如下
file = "/Downloads/file.txt"
lines = open(file, 'r').readlines()
lines[-1] = lines[-1].rstrip()
fields = [field.replace('"', '') for field in lines[-1].split('|') if field]
lines[-1] = '|'.join(fields)
open(file, 'w').writelines(lines)
解决方案
这是一些丑陋的代码,可以满足您的需求。它将您的第一个示例作为输入并提供您想要的输出。
last_line = str.split('\n')[-1].replace('|', '').split('"')
str = str.split('\n')
del str[-1]
last_line[1] = last_line[1] + '|'
str.append(''.join(last_line))
str = '\n'.join(str)
此外,str
变量包含您要更改的输入。
推荐阅读
- html - 我的响应式菜单在悬停时无法正确显示,并且菜单内容是透明的
- html - 如何使用动画图标悬停文本
- javascript - 如何在不调用自定义事件监听器的情况下触发事件?
- sql - 向表中添加 rowversion 列并对现有数据进行排序
- r - 在 R 中,如何拆分向量中的每个字符串以返回字符的第 N 个实例之前的所有内容?
- python - 根据条件计算熊猫的比率
- python - 如何在 Python(或 R)中对特定条件进行聚合和求和
- android - NavDrawer 中的 CollapsingToolbar 在滚动时卡在展开位置
- selenium - Selenium WebDriverException 会话不可用且不在最后 1000 个终止会话中
- c# - 如何在 C# 中的 DataGridView 中显示数据