【Python】从文件中读取数据

从文件中读取数据

1.1 读取整个文件

要读取文件,需要一个包含几行文本的文件(文件PI_DESC.txt与file_reader.py在同一目录下)

PI_DESC.txt

3.1415926535
  8979323846
  2643383279
  5028841971

file_reader.py

with open("PI_DESC.txt") as file_object:
    contents = file_object.read()
    print(contents)

我们可以看出,读取文件时,并没有使用colse()方法,那么未妥善的关闭文件,会不会导致文件收到损坏呢?在这里是不会的,因为我们在open()方法前边引入了关键字with,该关键字的作用是:在不需要访问文件后将其关闭

1.2文件路径

程序在读取文本文件的时候,如果不给定路径,那么它会先在当前目录下进行检索,有时候我们需要读取其他文件夹中的路径,例如:

现在文件PI_DESC.txt存储在文件夹txt中

那么我们读取文本内容的代码得修改为:

with open("txt\PI_DESC.txt") as file_object:
    contents = file_object.read()
    print(contents)

给open参数传递的参数得给相对路径

Linux与OS X中,路径使用斜杠(/)

Windows中,使用反斜杠(\),但是由于python中,反斜杠被视为转义字符,在Windows最好在路径开头的单(双)引号前加上r

相对路径:即相对于程序文件的路径

绝对路径:即文本在硬盘上存储的路径

使用绝对路径的程序怎么写呢 ?

with open(r"D:\python\txt\PI_DESC.txt") as file_object:
    contents = file_object.read()
    print(contents)

1.3逐行读取

读取文件时,可能需要读取文件中的每一行,要以每一行的方式来检查文件或者修改文件,那么可以对文件对象使用for循环

file_path = ‘txt\PI_DESC.txt‘
with open(file_path) as file_object:
    for line in file_object:
        print(line)

程序运行结果如下:

通过运行结果我们可以看出,打印结果中间有很多空白行,这些空白行是怎么来的呢?因为在这个文件中,每行的末尾都有一个看不见的换行符,而print语句也会加一个换行符,因此每行末尾就有2个换行符:一个来自文件,另外一个来自print,消除这些换行符,只需要使用方法rstrip()

file_path = ‘txt\PI_DESC.txt‘
with open(file_path) as file_object:
    for line in file_object:
        print(line.rstrip())

打印结果

1.4创建一个包含文件各行内容的列表

使用关键字with时,open()返回的文件对象只能在with代码块可用,如果要在with代码块外访问文件的内容,可在with块中将文件各行存储在一个列表,并在with代码块外使用该列表

file_path = ‘txt\PI_DESC.txt‘
with open(file_path) as file_object:
    lines = file_object.readlines()
for line in lines:
    print(line.rstrip())

1.5使用文件的内容

在上面一节中我们提到把数据提取到内存中,那么我们就可以对数据进行随心所欲的操作了

需要:将圆周率连在一起打印出来(删除空格),并打印其长度

file_path = ‘txt\PI_DESC.txt‘
with open(file_path) as file_object:
    lines = file_object.readlines()

pi_str = ‘‘
for line in lines:
    pi_str += line.strip()
print(pi_str.rstrip())
print(len(pi_str.rstrip()))

注意最后print语句并没有缩进,如果是缩进的话就会每取一行打印一次

打印效果如下

1.5大文件的读取

在这里我先用圆周率前10000位做实验,也算不上大文件,只是相对来说是大文件

附件下载地址:点击下载

为了不显示圆周率一万位,造成console不停的闪烁,我们只显示前20位

file_path = ‘txt\PI_DESC.txt‘
with open(file_path) as file_object:
    lines = file_object.readlines()

pi_str = ‘‘
for line in lines:
    pi_str += line.strip()
print(pi_str[:20].lstrip())
时间: 2024-10-17 07:04:33

【Python】从文件中读取数据的相关文章

Python从文件中读取数据

一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name is joker, I am 18 years old, How about you? 如何读取文件全部内容,我们编写到reader.py文件中. reader.py 1 with open('resource.txt') as file_obj: 2 content = file_obj.read() 3 print(content) 4 需要注意的是需要

Python从文件中读取数据(2)

一.读取文件中各行的内容并存储到一个列表中 继续用resource.txt 举例 resource.txt my name is joker, I am 18 years old, How about you? test.py 1 file_name = 'resource.txt' 2 3 with open(file_name) as file_obj: 4 lines = file_obj.readlines() 5 print(lines) 控制台打印如下: 解释:可以看到在file_o

从plist文件中读取数据

//从plist文件中读取数据- (void)readDataFromPlist{    //1.先获取文件路径    NSString * filePath = [[NSBundle mainBundle] pathForResource:@"Book" ofType:@"plist"];    //2.根据路径初始化字典对象    self.dic = [NSMutableDictionary dictionaryWithContentsOfFile:fileP

Mean and Standard Deviation-从文件中读取数据计算其平均数和标准差

Meanand Standard Deviation-从文件中读取数据计算其平均数和标准差 //Meanand Standard Deviation-从文件中读取数据计算其平均数和标准差 #include<iostream> #include<fstream> #include<cstdlib> #include<cmath>   int main() {     usingnamespace std;     ifstream fin;     ofstr

从Matlab .fig文件中读取数据,并重新绘图

Matlab提供了强大的函数集合,可以从.fig文件中读取图中的数据,并重新绘制图形.如果原始数据丢失,我们可以从.fig文件中恢复原始数据,并基于原始数据做进一步的处理. 以下是一个从两个不同文件中读取原始数据,并重新绘制图形的例子. h1 = openfig('1.fig','reuse'); % open figure D1=get(gca,'Children'); %get the handle of the line object XData1=get(D1,'XData'); %ge

从txt文件中读取数据放在二维数组中

1.我D盘中的test.txt文件内的内容是这样的,也是随机产生的二维数组 /test.txt/ 5.440000 3.4500006.610000 6.0400008.900000 3.0300000.140000 2.7400008.920000 7.2900002.580000 7.4300001.850000 6.1300001.350000 4.280000 ... ... 2.在我的test.cpp中添加头文件,即可使用FILE类来读取txt文件中的数据 #include <stdi

利用Python从文件中读取字符串(解决乱码问题)

首先声明这篇学习记录是基于python3的. python3中,py文件中默认的文件编码就是unicode,不用像python2中那样加u,比如u'中文'. 不过在涉及路径时,比如C:\Users\Administrator\Desktop\StudyNote\Python,还是要加r. eg:r'C:\Users\Administrator\Desktop\StudyNote\Python'. 因为\是转义符,想输出'\'得写成'\\'才可以.加了r就可以让python自动处理字符串,最终的字

Java—从文件中读取数据

1.FileInputStream() // 构建字节输入流对象,参数为文件名 FileInputStream fin = new FileInputStream("message"); System.out.println("输入流可读入字节数:" + fin.available()); // 建立byte型数组b,从输入流读取的数据暂时存放在b中 byte b[] = new byte[fin.available()]; // 从输入流读取数据 fin.read

springMVC从上传的Excel文件中读取数据

示例:导入客户文件(Excle文件) 一.编辑customer.xlsx 二.编辑jsp(addCustomer3.jsp) <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefi