线还是线?

2024-09-26 17:40:58 发布

您现在位置:Python中文网/ 问答频道 /正文

最近我使用python使用了不同的输入方法。你知道吗

f=open('txt','r')
for line in f:.....


f=open ('txt','r').readlines()
for line in f:...



samtoolsin = subprocess.Popen(["/share/bin/samtools/samtools","view",bamfile],
                                      stdout=subprocess.PIPE,bufsize=1)

f = samtoolsin.stdout
for line in f:.....




f= commands.output('zcat '+ file)
for line in f:.....

对于以上所有情况,f是列表还是字符串? 根据我的经验,似乎1,2,3都是列表,但第四是字符串。但我不知道为什么.thx你知道吗


Tags: 方法字符串intxtshare列表forstdout
2条回答

简短回答:

长答案(主要是文档链接):

f=open('txt','r')
  • open()返回File Object。它是iterable,但既不是字符串也不是列表。你知道吗

f=open ('txt','r').readlines()

samtoolsin = subprocess.Popen(..., stderr=subprocess.PIPE, ...)
f = samtoolsin.stdout

f= commands.output('zcat '+ file)

当迭代一个文件对象时,f实际上是一个迭代器,每次调用它都返回一行。这样做有很多好处,因为如果使用.readlines(),则会将整个列表存储在内存中,而且还必须在处理之前读取整个列表。你知道吗

相关问题 更多 >

    热门问题