gpt4 book ai didi

python - readline() 返回括号

转载 作者:太空狗 更新时间:2023-10-30 02:02:47 25 4
gpt4 key购买 nike

我写了一些代码来从 .txt 中获取一些行,如下所示,它不断返回带括号的行,这是我不想要的。你能帮帮我吗?

代码:

#!/bin/python
i=1
f=open("name.txt","r")
while(i<=225):
x=f.readline().splitlines()
print("mol new %s.bgf"%(x))
i+=1
f.close()

名字.txt

02.ala.r49r50.TRK820.no_0.rnd_1.c14421.f.c
04.ala.r44r45.TRK820.no_0.rnd_1.c48608.h.c
09.ala.r46r47.TRK820.no_0.rnd_1.c14682.t.c
17.ala.r47r48.TRK820.no_0.rnd_1.c9610.th.c
18.ala.r48r49.TRK820.no_59.rnd_1.c19106.t.c

它返回

mol new ['02.ala.r49r50.TRK820.no_0.rnd_1.c14421.f.c'].bgf
mol new ['04.ala.r44r45.TRK820.no_0.rnd_1.c48608.h.c'].bgf
mol new ['09.ala.r46r47.TRK820.no_0.rnd_1.c14682.t.c'].bgf
mol new ['17.ala.r47r48.TRK820.no_0.rnd_1.c9610.th.c'].bgf
mol new ['18.ala.r48r49.TRK820.no_59.rnd_1.c19106.t.c'].bgf

最佳答案

对您的代码进行最少的更改,尝试:

i=1
f=open("name.txt","r")
while(i<=225):
x=f.readline().rstrip('\n')
print("mol new %s.bgf"%(x))
i+=1
f.close()

这会产生如下输出:

mol new 02.ala.r49r50.TRK820.no_0.rnd_1.c14421.f.c.bgf
mol new 04.ala.r44r45.TRK820.no_0.rnd_1.c48608.h.c.bgf
mol new 09.ala.r46r47.TRK820.no_0.rnd_1.c14682.t.c.bgf
mol new 17.ala.r47r48.TRK820.no_0.rnd_1.c9610.th.c.bgf
mol new 18.ala.r48r49.TRK820.no_59.rnd_1.c19106.t.c.bgf

进一步改进:

with open("name.txt","r") as f:
for i, line in enumerate(f):
if i >= 225:
break
print("mol new %s.bgf"%(line.rstrip('\n')))

注意事项:

  1. 您想使用 with open("name.txt","r") as f以确保文件 f无论如何都会关闭。

  2. 遍历 i作为 i=1; while(i<=225): i+=1 中的计数器不是 python 。请改用枚举。

  3. readline读一行。不需要 splitlines .

  4. 通过使用 for i, line in enumerate(f): 遍历文件中的行,我们消除了一次读取整个文件的需要。这使得该程序适合处理非常大的文件。

  5. 在 python 中,当从文件中读取一行时,它的末尾仍然有换行符。我们使用 rstrip('\n')安全地移除它。

关于python - readline() 返回括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38732799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com