首页 热点专区 义务教育 高等教育 出国留学 考研考公

python expandtabs().splitlines(),最近在看python一个计数文件行数的...

发布网友 发布时间:2022-04-25 10:46

我来回答

1个回答

热心网友 时间:2022-04-18 15:10

lines = docstring.expandtabs().splitlines()

首先,docstring是字符串(string)。

然后,string.expandtabs()是将字符串里面的tab制表符换成空格,如果没有指定tabsize参数,默认一个tab转化成8个空格。

(这是help里面的说明:Return a copy of S where all tab characters are expanded using spaces.If tabsize is not given, a tab size of 8 characters is assumed.)

之后,string.splitlines()是将一串字符串按行分割,并返回分割后的列表(list)。

追问这个拆开来都懂,但是这个环境是在每一行已经是从文件中readlines出来的,也就是已经是一行了,splitlines()不带参数不是按照换行符分割吗,可是这时候的字符串没有换行符啊,或者有什么情况下才能文件读取一行里面还包含换行符并且可以被splitlines()识别?我直接加\n没起作用

追答事实上readlines()读取出来的正是含有\n的行,而且有没有这个换行符并不影响splitlines()的功能

In [1]: open('a.txt','w').write("a\nb\nc\nabc")

In [2]: !cat a.txt #ipython特有的功能,查看文本内容
a
b
c
abc
In [3]: open('a.txt','r').readlines()
Out[3]: ['a\n', 'b\n', 'c\n', 'abc']

In [4]: open('a.txt','r').read().splitlines()
Out[4]: ['a', 'b', 'c', 'abc']

In [5]: for line in open('a.txt','r').read().splitlines():
   ...:     print line.splitlines()
   ...:
['a']
['b']
['c']
['abc']

In [6]: for line in open('a.txt','r').readlines():
   ...:     print line.splitlines()
   ...:
['a']
['b']
['c']
['abc']

(前面的In[x] Out[x]是ipython的输入输出标识。)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com