Python3 从文件读取操作


原文链接: Python3 从文件读取操作

转Python3从文件中读取数据
Python3有三种从文件中读取数据的方法:

read()  读取整个文件内容;占用内存多
readline()  每次读取并返回一行数据;读取速度慢,每次占用内存少
readlines() 读取每一行数据,并作为元素存储在一个列表中

下面我将圆周率π的部分数值拆分为三行存储在文件pi_digits.txt中,然后使用python读取文件并拼接为完整的π:3.141592653589793238462643383279,注意得到结果是字符串,并不是数字

方法一:.read()一次读取文件的全部内容

with open('pi_digits.txt') as f:
    '''打开文件'''
    pi = f.read()
    '''读取文件内容并赋给变量content'''
    print(pi.replace("\n","").replace(" ",""))
    '''使用.replace()将每行末尾的换行符和空格,替换为空,打印拼接完成的π'''

方法二:逐行读取

with open('pi_digits.txt') as f:
    '''打开文件'''
    pi = ''
    '''初始化变量pi'''
    for line in f:
        '''逐行读取文件的每一行内容'''
        pi += line.strip()
        '''剔除元素首尾的空字符后做字符串拼接,并赋给pi'''
        # pi += "".join(line.strip())
    print(pi)
    '''打印拼接完成的π'''

方法三:.readline()

with open('pi_digits.txt') as f:
    '''打开文件'''
    pi = ''
    '''初始化变量pi'''
    while True:
        '''???'''
        line = f.readline()
        '''读取一行内容赋给变量line'''
        if line:
            '''如果读取到一行数据'''
            #print(line)
            pi += line.strip()
            '''剔除这行数据两端的空字符之后拼接并赋给pi'''
        else:
            '''如果读取内容为空'''
            break
            '''退出循环'''
     print(pi)
     '''打印拼接完成的π'''

方法四:.readlines()

with open('pi_digits.txt') as f:
    '''打开文件'''
    lines = f.readlines()
    '''读取文件的每行作为元素存入列表'''
    print(lines)
    '''打印列表'''
    pi = ''
    '''初始化变量pi'''
    for line in lines:
        '''遍历列表的元素'''
        pi += line.strip()
        '''剔除元素首尾的空字符后做字符串拼接,并赋给pi'''
    print(pi)
    '''打印拼接完成的π'''

方法五:.read().split() 按空格分割为list

with open('pi_digits.txt') as f:
    '''打开文件'''
    lines = f.read().split()
    '''将文件分割为字符串列表,相对于.readlines(),这种方法在分割内容时,就剔除了空字符'''
    print(lines)
    '''打印列表'''
    pi = ''
    '''初始化变量pi,用于表示完整的π'''
    for line in lines:
        '''遍历列表的元素'''
        pi += line
        '''将每个元素做字符串拼接,并赋给pi'''
    print(pi)
    '''打印拼接完成的π''
`