Python中read(),readline(),readlines()使用详解

# python3.7

1.read()会读取文件的全部内容,read(size)方法,每次最多读取size个字节的内容,返回字符串.

#a.txt  第一行为abc 

#a.txt  第二行为a12

代码:

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

  content = f.read()

  print('文件名为:', f.name)

  print (content)

  f.close()

结果:

  文件名为: a.txt     #打印出文件的名字

  abc                         #打印出第一行的内容(print (content))

  a12                         #打印出第二行的内容(print (content))

Note: 因为使用read()读取每行结尾会有\n,实际输出等同于content = ‘abc\na12’.


2.readline可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回字符串.

代码:

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

  content = f.readline()

  print('文件名为:', f.name)

  print (content)

  print(len(content))

  f.close()

结果:

  文件名为: a.txt     #打印出文件的名字

  abc           #打印第一行的内容

                   #换行

  4               #打印content字符长度

  Note: readline()方法会在每行后面加上\n, content = ‘abc\n’.


3.readlines()一次读取所有内容并按行返回列表

代码:

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

  content = f.readlines()

  print (content)

  f.close()

结果:

  ['abc\n', 'a12']   #打印第一行和第2行,并把每一行当成一个字符串,第一行后面也增加\n,最后一行没有加\n


怎么去掉\n呢?

方法1:

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

  content = f.readline().splitlines()

  print(content)

  f.close()

结果:

  ['abc']       #打印第一行的内容,类型为列表

Note: 使用splitlines(),将字符串‘abc\n’转换为了列表 ['abc']

方法2:

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

  content = f.readlines()

  content =''.join(content).strip('\n')

  print(content)

  f.close()

结果:

  abc   # 打印第一行的内容

  a12   #打印第二行的内容

Note: 返回的结果是‘abc\na12’ 字符串,只是把这个字符隔行打印出来;list中没有strip的这种属性。strip是字符串的属性,f.readlines()返回的是一个列表。所以将f.readlines()返回的列表转换成字符串就能用strip这个属性了。line = ''.join(line) 列表转换成字符串了.( line = ''.join(line) 可能不太好理解,可以简单理解为''join(x)就是把列表数据都为字符串的x列表转换为一个大的字符串.)


方法1,直接使用字符串方法:   splitlines   ,返回结果是列表 ['abc']

方法2,在使用 ''.join转换成字符串后,可以直接使用splitlines方法,返回的结果就是列表['abc', 'a12']

你可能感兴趣的:(Python中read(),readline(),readlines()使用详解)