精华内容
下载资源
问答
  • 使用 read() 函数读取文件时,如果文件过大,则一次读取全部内容到内存,容易造成内存不足,而相比每次限制读取字符(或字节)个数,更推荐大家使用逐行读取文件的方式。一般情况下,逐行读取只适用于以文本格式...

    5db3d752123c9350.gif

    使用 read() 函数读取文件时,如果文件过大,则一次读取全部内容到内存,容易造成内存不足,而相比每次限制读取字符(或字节)的个数,更推荐大家使用逐行读取文件的方式。一般情况下,逐行读取只适用于以文本格式打开的文件,道理很简单,只有文本文件才有行的概念,二进制文件没有所谓行的概念。

    文件对象提供了 readline() 和 readlines() 两个函数来逐行读取文件,其中 readline() 函数用于读取一行内容,而 readlines() 函数用于读取文件内的所有行。

    readline()函数

    readline() 函数用于读取文件中的一行,包含最后的换行符" ”。此函数的基本语法格式为:file.readline([size])

    其中,file 为打开的文件对象;size 为可选参数,用于指定读取每一行时,一次最多读取的字符数。和 read() 函数一样,此函数成功读取文件数据的前提是,使用 open() 函数指定打开文件的模式必须为 r(只读模式)或 r+

    (读写模式)。

    下面程序示范了使用 readline() 方法来读取文件内容:#a.txt中有两行内容,分别是:

    #PHP中文网

    #https://www.php.cn

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

    while True:

    # 每次读取一行

    line = f.readline()

    # 如果没有读到数据,跳出循环

    if not line: break

    # 输出line

    print(line)

    f.close()

    输出结果是PHP中文网

    https://www.php.cn

    更多学习内容,请点击Python学习网。

    展开全文
  • 展开全部下面是一个简单的读取例子,如果报“java.io.IOException: Invalid header signature; read 4503608217567241, expected -2226271756974174256”之类异常请用Excel打开(如果能打的开话)62616964757a...

    展开全部

    下面是一个简单的读取例子,如果报“java.io.IOException: Invalid header signature; read 4503608217567241, expected -2226271756974174256”之类的异常请用Excel打开(如果能打的开的话)62616964757a686964616fe58685e5aeb931333361323639然后另存为一下。import java.io.BufferedInputStream;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.IOException;

    import java.text.DecimalFormat;

    import java.text.SimpleDateFormat;

    import java.util.ArrayList;

    import java.util.Arrays;

    import java.util.Date;

    import java.util.List;

    import org.apache.poi.hssf.usermodel.HSSFCell;

    import org.apache.poi.hssf.usermodel.HSSFDateUtil;

    import org.apache.poi.hssf.usermodel.HSSFRow;

    import org.apache.poi.hssf.usermodel.HSSFSheet;

    import org.apache.poi.hssf.usermodel.HSSFWorkbook;

    import org.apache.poi.poifs.filesystem.POIFSFileSystem;

    public class Test0 {

    /**

    * @param args

    * @throws IOException

    * @throws FileNotFoundException

    */

    public static void main(String[] args) throws FileNotFoundException,

    IOException {

    File file = new File("C://test01.xls");// Excel文件路径

    String[][] result = getData(file, 1);

    int rowLength = result.length;

    for (int i = 0; i 

    for (int j = 0; j 

    System.out.print(result[i][j] + "\t\t");

    }

    System.out.println();

    }

    }

    /**

    * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行

    *

    * @param file

    *            读取数据的源Excel

    * @param ignoreRows

    *            读取数据忽略的行数,比喻行头不需要读入 忽略的行数为1

    * @return 读出的Excel中数据的内容

    * @throws FileNotFoundException

    * @throws IOException

    */

    public static String[][] getData(File file, int ignoreRows)

    throws FileNotFoundException, IOException {

    List result = new ArrayList();

    int rowSize = 0;

    BufferedInputStream in = new BufferedInputStream(new FileInputStream(

    file));

    // 打开HSSFWorkbook

    POIFSFileSystem fs = new POIFSFileSystem(in);

    HSSFWorkbook wb = new HSSFWorkbook(fs);

    HSSFCell cell = null;

    for (int sheetIndex = 0; sheetIndex 

    HSSFSheet st = wb.getSheetAt(sheetIndex);

    // 第一行为标题,不取

    for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) {

    HSSFRow row = st.getRow(rowIndex);

    if (row == null) {

    continue;

    }

    int tempRowSize = row.getLastCellNum() + 1;

    if (tempRowSize > rowSize) {

    rowSize = tempRowSize;

    }

    String[] values = new String[rowSize];

    Arrays.fill(values, "");

    boolean hasValue = false;

    for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) {

    String value = "";

    cell = row.getCell(columnIndex);

    if (cell != null) {

    // 注意:一定要设成这个,否则可能会出现乱码

    cell.setEncoding(HSSFCell.ENCODING_UTF_16);

    switch (cell.getCellType()) {

    case HSSFCell.CELL_TYPE_STRING:

    value = cell.getStringCellValue();

    break;

    case HSSFCell.CELL_TYPE_NUMERIC:

    if (HSSFDateUtil.isCellDateFormatted(cell)) {

    Date date = cell.getDateCellValue();

    if (date != null) {

    value = new SimpleDateFormat("yyyy-MM-dd")

    .format(date);

    } else {

    value = "";

    }

    } else {

    value = new DecimalFormat("0").format(cell

    .getNumericCellValue());

    }

    break;

    case HSSFCell.CELL_TYPE_FORMULA:

    // 导入时如果为公式生成的数据则无值

    if (!cell.getStringCellValue().equals("")) {

    value = cell.getStringCellValue();

    } else {

    value = cell.getNumericCellValue() + "";

    }

    break;

    case HSSFCell.CELL_TYPE_BLANK:

    break;

    case HSSFCell.CELL_TYPE_ERROR:

    value = "";

    break;

    case HSSFCell.CELL_TYPE_BOOLEAN:

    value = (cell.getBooleanCellValue() == true ? "Y"

    : "N");

    break;

    default:

    value = "";

    }

    }

    if (columnIndex == 0 && value.trim().equals("")) {

    break;

    }

    values[columnIndex] = rightTrim(value);

    hasValue = true;

    }

    if (hasValue) {

    result.add(values);

    }

    }

    }

    in.close();

    String[][] returnArray = new String[result.size()][rowSize];

    for (int i = 0; i 

    returnArray[i] = (String[]) result.get(i);

    }

    return returnArray;

    }

    /**

    * 去掉字符串右边的空格

    *

    * @param str

    *            要处理的字符串

    * @return 处理后的字符串

    */

    public static String rightTrim(String str) {

    if (str == null) {

    return "";

    }

    int length = str.length();

    for (int i = length - 1; i >= 0; i--) {

    if (str.charAt(i) != 0x20) {

    break;

    }

    length--;

    }

    return str.substring(0, length);

    }

    }

    展开全文
  • 就像这样的数据怎么读取后在程序转变为 ``` infors = [ {'account':'123', 'password':'123', 'money':10000, 'kind':'金卡'}, {'account':'222', 'password':'123', 'money':10000, 'kind':'金卡'}, {'...
  • 不论是数据分析,数据可视化,还是数据...在本期的Python学习中,我们将针对Python如何获取外部数据做一个详细的介绍,从中我们将会学习以下4个方面的数据获取:1、读取文本文件的数据,如txt文件和csv文件2、读取电...

    不论是数据分析,数据可视化,还是数据挖掘,一切的一切全都是以数据作为最基础的元素。利用Python进行数据分析,同样最重要的一步就是如何将数据导入到Python中,然后才可以实现后面的数据分析、数据可视化、数据挖掘等。

    在本期的Python学习中,我们将针对Python如何获取外部数据做一个详细的介绍,从中我们将会学习以下4个方面的数据获取:

    1、读取文本文件的数据,如txt文件和csv文件

    2、读取电子表格文件,如Excel文件

    3、读取统计软件生成的数据文件,如SAS数据集、SPSS数据集等

    4、读取数据库数据,如MySQL数据、SQL Server数据

    一、读取文本文件的数据

    大家都知道,Python中pandas模块是专门用来数据分析的一个强大工具,在《Python数据分析之pandas学习(一)》和《Python数据分析之pandas学习(二)》中我们详细介绍了有关pandas模块的应用,下面我们就来介绍pandas是如何读取外部数据的。

    1、读取txt数据

    In [1]: import pandas as pd

    In [2]: mydata_txt = pd.read_csv('C:\\test_code.txt',sep = '\t',encoding = 'utf-8')

    对于中文的文本文件常容易因为编码的问题而读取失败,正如上图所示。遇到这样的编码问题该如何处置呢?解决办法有两种情况:

    1)当原始文件txt或csv的数据不是uft8格式时,需要另存为utf8格式编码;

    2)如果原始的数据文件就是uft8格式,为了正常读入,需要将read_csv函数的参数encoding设置为utf-8

    将原始数据另存为utf8格式的数据,重新读入txt数据

    In [3]: mydata_txt = pd.read_csv('C:\\test.txt',sep = '\t',encoding = 'utf-8')

    In [4]: mydata_txt

    很顺利,txt文本文件数据就这样进入了Python的口袋里了。

    2、读取csv数据

    csv文本文件是非常常用的一种数据存储格式,而且其存储量要比Excel电子表格大很多,下面我们就来看看如何利用Python读取csv格式的数据文件:

    In [5]: mydata_csv = pd.read_csv('C:\\test.csv',sep = ',',encoding = 'utf-8')

    In [6]: mydata_csv

    如果你善于总结的话,你会发现,txt文件和csv文件均可以通过pandas模块中的read_csv函数进行读取。该函数有20多个参数,类似于R中的read.table函数,如果需要查看具体的参数详情,可以查看帮助文档:help(pandas.read_csv)。

    二、读取电子表格文件

    这里所说的电子表格就是Excel表格,可以是xls的电子表格,也可以是xlsx的电子表格。在日常工作中,很多数据都是存放在Excel电子表格中的,如果我们需要使用Python对其进行分析或处理的话,第一步就是如何读取Excel数据。下面我们来看看如果读取Excel数据集:

    In [7]: mydata_excel = pd.read_excel('C:\\test.xlsx',sep = '\t',encoding = 'utf-8')

    In [8]: mydata_excel

    三、读取统计软件生成的数据文件

    往往在集成数据源的时候,可能会让你遇到一种苦恼,那就是你的电脑里存放了很多统计软件自带的或生成的数据集,诸如R语言数据集、SAS数据集、SPSS数据集等。那么问题来了,如果你电脑里都装了这些软件的话,这些数据集你自然可以看见,并可以方便的转换为文本文件或电子表格文件,如果你的电脑里没有安装SAS或SPSS这样大型的统计分析软件的话,那么你该如何查看这些数据集呢?请放心,Python很万能,它可以读取很多种统计软件的数据集,下面我们介绍几种Python读取统计数据集的方法:

    1、读取SAS数据集

    SAS数据集的读取可以使用pandas模块中的read_sas函数,我们不妨试试该函数读取SAS数据集。下图是使用SAS打开的数据集,如果你的电脑中没有安装SAS,那你也可以通过Python实现数据的读取。

    In [1]: import pandas as pd

    In [2]: mydata_sas = pd.read_sas('G:\\class.sas7bdat',encoding='utf8')

    2、读取SPSS数据集

    读取SPSS数据就稍微复杂一点,自己测试了好多次,查了好多资料,功夫不负有心人啊,最终还是搞定了。关于读取SPSS数据文件,需要为您的Python安装savReaderWriter模块,该模块可以到如下链接进行下载并安装:https://pypi.python.org/pypi/savReaderWriter/3.4.2。

    安装savReaderWriter模块

    可以通过该命令进行savReaderWriter模块的安装:python setup.py install

    下图是SPSS数据在SPSS中打开的样子:

    In [1]: import savReaderWriter

    In [2]: mydata_spss = savReaderWriter.SavReader('employee_data.sav')

    In [3]: mydata_spss

    3、实在没办法该怎么办?

    如果你尝试了好多种模块都无法读取某个统计软件的数据,我建议你还是回到R中,R也是开源的统计分析工具,体积也非常小,只有40M左右,而且R自带的foreign包可以读取很多种统计软件的数据集,当读取成功后,再利用write.csv函数将数据集写出为csv格式的数据,这样Python就可以轻松读取csv数据集了,万事灵活一点就可以完成你想要的任何结果~

    四、读取数据库数据

    企业中更多的数据还是存放在诸如MySQL、SQL Server、DB2等数据库中,为了能够使Python连接到数据库中,科学家专门设计了Python DB API的接口。我们仍然通过例子来说明Python是如何实现数据库的连接与操作的。

    1、Python连接MySQL

    MySQLdb模块是一个连接Python与MySQL的中间桥梁,但目前只能在Python2.x中运行,但不意味着Python3就无法连接MySQL数据库。这里向大家介绍一个非常灵活而强大的模块,那就是pymysql模块。我比较喜欢他的原因是,该模块可以伪装成MySQLdb模块,具体看下面的例子:

    In [1]: import pymysql

    In [2]: pymysql.install_as_MySQLdb()    #伪装为MySQLdb模块

    In [3]: import MySQLdb

    使用Connection函数联通Python与MySQL

    In [4]: conn = MySQLdb.Connection(

    ...:        host = 'localhost',

    ...:        user = 'root',

    ...:        password = 'snake',

    ...:        port = 3306,

    ...:        database = 'test',

    ...:        charset='gbk')

    使用conn的游标方法(cursor),目的是为接下来的数据库操作做铺垫。

    In [5]: cursor = conn.cursor()

    In [6]: sql = 'select * from memberinfo'

    执行SQL语句

    In [7]: cursor.execute(sql)

    Out[7]: 4

    In [8]: data = cursor.fetchall()

    In [9]: data

    我们发现data中存储的是元组格式的数据集,我们在《Python数据分析之pandas学习(一)》中讲到,构造DataFrame数据结构只能通过数组、数据框、字典、列表等方式构建,但这里是元组格式的数据,该如何处理呢?很简单,只需使用list函数就可以快速的将元组数据转换为列表格式的数据。

    In [10]: data = list(data)

    In [11]: data

    下面我们就是要pandas模块中的DataFrame函数将上面的data列表转换为Python的数据框格式:

    In [14]: import pandas as pd

    In [15]: mydata = pd.DataFrame(data, columns = ['id','name','age','gender'])

    In [16]: mydata

    最后千万千万注意的是,当你的数据读取完之后一定要记得关闭游标和连接,因为不关闭会导致电脑资源的浪费。

    In [19]: cursor.close()

    In [20]: conn.close()

    2、Python连接SQL Server

    使用Python连接SQL Server数据库,我们这里推荐使用pymssql模块,该模块的语法与上面讲的pymysql是一致的,这里就不一一讲解每一步的含义了,直接上代码:

    In [21]: import pymssql

    In [22]: connect = pymssql.connect(

    ...:     host = '172.18.1.6\SqlR2',

    ...:     user = 'sa',

    ...:     password = '1q2w3e4r!!',

    ...:     database='Heinz_Ana',

    ...:     charset='utf8')

    In [23]: cursor = connect.cursor()

    In [24]: sql = 'select * from HeinzDB2_10'

    In [25]: cursor.execute(sql)

    In [26]: data = cursor.fetchall()

    In [27]: data[0]

    Out[27]: (67782, '2013-05-01', '二阶段', 1.0, 279.0)

    In [28]: mydata = pd.DataFrame(list(data),columns = ['ConsumerID',

    ...:                          'Purdate',

    ...:                          'Phase',

    ...:                          'ChangeTinRatio',

    ...:                          'TOTALAMT'])

    In [29]: mydata.head()

    本期的内容就是向大家介绍如何使用Python实现外部数据的读取,只有完成了这个基本的第一步,才会顺利的进行下面的清洗、处理、分析甚至挖掘部分。这一期的内容出来的有点晚,主要还是工作比较繁忙,后期继续再接再励,谢谢大家一直以来的支持和互动。在下一期中,我们将介绍R语言中caret包如何实现特征选择。

    展开全文
  • 怎么利用Spring利用注解读取配置文件里的数据 首先在spring的配置文件中配置如下配置: <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean&...

    怎么利用Spring利用注解读取配置文件里的数据

    1. 首先在spring的配置文件中配置如下配置:
    <bean id="configProperties"
            class="org.springframework.beans.factory.config.PropertiesFactoryBean">
            <property name="locations">
                <list>
                    <value>classpath:/XXXX.properties</value>
                </list>
            </property>
    </bean>
    
    <bean id="propertyConfigurer"          class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
            <property name="properties" ref="configProperties" />
    </bean>
    1. 在对应的xxxx文件里写出响应的数据如下
      这里写图片描述
    2. 在需要用到该数据的java类中加上如下注解;
    @Value("#{configProperties['key']}")
    private String key;

    则该key索引用的数据就是文件中的数据

    展开全文
  • python怎么读取文本文件?文件的读取步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt')>>> f.read()'hello python! hello world! '>>> f.close()读取数据是后期数据处理的必要步骤。.txt是广泛使用的数据文件...
  • 使用springboot搭建项目话,如果代码需要读取配置文件信息动态生成数据该怎么办呢,其实可以直接写到springboot配置文件当中,自己定义标签来读取. 一般开发过程当中都会使用yml配置文件,我们这里也使用这种演示,...
  • Java语言怎么从我的文档的目录里面读取最近生成的txt文件,并且将这个文件里面的数据插入另一个txt
  • 用C# 转划一份表格 该怎么读取呢 有做过这个功能大佬?
  • 更多范例见XML读 写 简单留言本 http://hi.baidu.com/wenjunlin/blog/item/866585cedfbbd90892457e8e.html生成XML文件 http://hi.baidu.com/wenjunlin/blog/item/2c49b103e8918be708fa93a7.htmlXML增 删 改 查询...
  • 用VC读取txt文件里两列数据并存放于两个数组中,然后通过引擎调用MATLAB绘图函数,画出曲线。然,我程序编译通过但无法显示曲线图像如果不读取txt文件直接给两个数组赋值就可以正常运行显示。如果这一思路不对...
  • 展开全部Android里面Sqlite使用使用步骤62616964757a686964616fe78988e69d83313333633538321,创建一个SqliteOpenHelper子类public class MySqliteOpenHelper extends SQLiteOpenHelper { private static final ...
  • 菜鸟笔记首先读取的txt文件如下:AAAAF110 0003E818 0003E1FC 0003E770 0003FFFC 90AAAAF110 0003E824 0003E208 0003E76C 0003FFFC A5AAAAF110 0003E814 0003E204 0003E760 0003FFFC 85AAAAF110 0003E7F0 0003E208 ...
  • MATLAB读取csv文件里面既有文本又有数字的文件怎么读取 一.第一种方法用代码读取 用代码读取: (1)如果你要读的文件里面都是数字话,用csvread函数,它有三种方式读取,但是它缺点就是只能读取全是数值的文件...
  • 打开文件 fopen("需要打开路径") 然后使用fgets函数读取行 #include  #include  #include  #define MAX_LINE 1024 int main() {  char buf[MAX_LINE]; /*缓冲区*/  FILE *fp; /*文件指针*/  ...
  • 本节内容:I/O操作概述文件读写实现原理与操作步骤文件打开模式Python文件操作步骤示例Python文件读取相关方法文件读写与字符编码一、I/O操作概述I/O在计算机中是指Input/Output,也就是Stream(流)输入和输出。...
  • 但是怎么读取3000多个呀?我本来想是每次存一个json对象进内存然后读取,直到读取完全部。 但是教我人说叫我不要读写文件这种方式来读取,直接用jason库函数读取。我这样写只能读取一个,怎么读完全部呢?jason...
  • 假设我们有一个叫testdata.txt的文件,现在在这个文件里面有测试数据,我们怎么利用前2小章学习知识,读取测试数据呢? 测试数据如下:  url:https://www.cnblogs.com/wlyhy/,e-mail:wurz529@foxmail.com,...
  • 要写一个通讯录管理系统,txt里面存放联系人信息,但是要怎么显示到list control里面啊
  • 前言有些人看到这个问题觉得不是问题,是嘛,不就是df.col[]函数嘛,其实忽略了一个重点,那就是我们要省去把csv文件全部读取这个过程,因为如果在面临亿万级别大规模数据,得到结果就是boom,boom,boom。...
  • 需要注意是本地xml文件最好放在静态资源文件夹中,这样webpack打包时不会将其打包到项目。传入url地址应该是"localhost:8080/static/文件名",前面主机名可以省略。(注意vue根目录是src) ...
  • 移动磁盘打不开文件或目录损坏且无法读取,是因为这个I盘的文件系统内部结构损坏导致的。要恢复里面的数据就必须要注意,这个盘不能格式化,否则数据会进一步损坏。具体的恢复方法看正文 工具/软件:...
  • 求指点啊 最好有一小段代码 把文件放在了SD卡/D/SQLITE里面了
  • 机械硬盘打不开磁盘结构损坏且无法读取,是因为这个I盘的文件系统内部结构损坏导致的。要恢复里面的数据就必须要注意,这个盘不能格式化,否则数据会进一步损坏。具体的恢复方法看正文 工具/软件:...
  • 磁盘结构损坏且无法读取说明这个盘的文件系统结构损坏了。在平时如果数据不重要,那么可以直接格式化就能用了。但是有的时候里面的数据很重要,那么就必须先恢复出数据再格式化。具体恢复方法可以看正文了解(不格式...
  • 文件或目录损坏且无法读取说明这个盘的文件系统结构损坏了。在平时如果数据不重要,那么可以直接格式化就能用了。但是有的时候里面的数据很重要,那么就必须先恢复出数据再格式化。具体恢复方法可以看正文了解(不...
  • 移动硬盘打不开、无法访问、提示"格式化" "文件或目录损坏且无法读取"、变成RAW格式怎么办?移动硬盘还有好多重要文件没有备份,不敢格式化怎么办?发现移动硬盘打不开了,不要着急,按照下面方法可以轻松解决...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 573
精华内容 229
关键字:

怎么读取文件里的数据