如何解决python startswith 函数返回整个文本文件的内容
我正在尝试提取字符串 pax:
后面的数字的所有实例。指示 pax 的字符串前面是一个以 RCT
开头的字符串。
在下面的数据中,我将尝试提取 2
。
数据原如下:
" T44-39 "
"RCT# 26798 pax: 2"
"STORE# 6 TERMINAL# 3 ONLINE"
第一次尝试的代码如下:
with open("e-journal.txt","r") as rf:
with open("e-journal_py output.txt","w") as wf:
for line in rf:
line = line.strip()
if line.startswith('"RCT#'):
pax = line.split()
pax2 = pax[3]
print (pax2)
然而,每一行都以 "
开始和结束,所以我试图通过修改代码来替换 "
。
T44-39 \nRCT# 26798 pax: 2\nSTORE# 6 TERMINAL# 3 ONLINE\n
第二次尝试代码如下:
with open("e-journal.txt","w") as wf:
data = rf.read()
data = data.replace('"','')
with open(data) as data:
for line in data:
line = line.strip()
if line.startswith("RCT"):
pax = line.split()
pax2 = pax[1]
修改后的代码删除了每行开头和结尾的 "
,但也返回了整个文本文件的内容。换句话说,startswith
函数不返回 pax
的数量。如何修改代码以返回字符串 pax
后面的数字?
另外,鉴于没有代码可打印,我不确定是什么促使成本返回整个数据集
解决方法
你的第一次尝试是最明智的。它已返回 2"
,因此您只需删除尾随的 "
。
您可以使用 rstrip
字符串方法来做到这一点。简单地改变
pax2 = pax[3]
到
pax2 = pax[3].rstrip('"')
或者如果您想将其视为整数而不是字符串,请在其周围添加 int()
:
pax2 = int(pax[3].rstrip('"'))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。