python startswith 函数 returns 整个文本文件的内容
python startswith function returns content of entire text file
我正在尝试提取字符串 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)
但是,每一行都以 "
开始和结束,所以我尝试通过修改代码来替换 "
。
使用replace
函数后,打印returns如下:
T44-39 \nRCT# 26798 PAX: 2\nSTORE# 6 TERMINAL# 3 ONLINE\n
第二次尝试代码如下:
with open("e-journal.txt","r") as rf:
with open("e-journal_py output.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]
修改后的代码删除了每行开头和结尾的 "
,还删除了 整个 文本文件的 returns 内容。换句话说,startswith
函数不会returnPAX
的数量。如何将代码修改为 return 字符串 PAX
后面的数字?
此外,鉴于没有可打印的代码,我不确定是什么导致 return 整个数据集的成本
你的第一次尝试是最明智的。它已经返回 2"
,因此您只需删除尾随的 "
.
您可以使用 rstrip
字符串方法来做到这一点。只需更改
pax2 = pax[3]
到
pax2 = pax[3].rstrip('"')
或者如果您想将其视为整数而不是字符串,请在其周围添加 int()
:
pax2 = int(pax[3].rstrip('"'))
我正在尝试提取字符串 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)
但是,每一行都以 "
开始和结束,所以我尝试通过修改代码来替换 "
。
使用replace
函数后,打印returns如下:
T44-39 \nRCT# 26798 PAX: 2\nSTORE# 6 TERMINAL# 3 ONLINE\n
第二次尝试代码如下:
with open("e-journal.txt","r") as rf:
with open("e-journal_py output.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]
修改后的代码删除了每行开头和结尾的 "
,还删除了 整个 文本文件的 returns 内容。换句话说,startswith
函数不会returnPAX
的数量。如何将代码修改为 return 字符串 PAX
后面的数字?
此外,鉴于没有可打印的代码,我不确定是什么导致 return 整个数据集的成本
你的第一次尝试是最明智的。它已经返回 2"
,因此您只需删除尾随的 "
.
您可以使用 rstrip
字符串方法来做到这一点。只需更改
pax2 = pax[3]
到
pax2 = pax[3].rstrip('"')
或者如果您想将其视为整数而不是字符串,请在其周围添加 int()
:
pax2 = int(pax[3].rstrip('"'))