精华内容
下载资源
问答
  • 本文要点刚要:(一)读文本文件格式的数据函数:...跳行读取文本文件,用skiprows5.数据太大时需要逐块读取文本数据用chunksize进行分块。()将数据写成文本文件格式函数:to_csv范例如下:(一)读取文本文件格...

    本文要点刚要:

    (一)读文本文件格式的数据函数:read_csv,read_table

    1.读不同分隔符的文本文件,用参数sep

    2.读无字段名(表头)的文本文件 ,用参数names

    3.为文本文件制定索引,用index_col

    4.跳行读取文本文件,用skiprows

    5.数据太大时需要逐块读取文本数据用chunksize进行分块。

    (二)将数据写成文本文件格式函数:to_csv

    范例如下:

    (一)读取文本文件格式的数据集

    1.read_csv和read_table的区别:

    #read_csv默认读取用逗号分隔符的文件,不需要用sep来指定分隔符

    import pandas as pd

    pd.read_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.csv')

    1368336-20180426224121292-979964237.png

    #read_csv如果读的是用非逗号分隔符的文件,必须要用sep指定分割符,不然读出来的是原文件的样子,数据没被分割开

    import pandas as pd

    pd.read_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.txt')

    1368336-20180426224144868-1760190149.png

    #与上面的例子可以对比一下区别

    import pandas as pd

    pd.read_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.txt',sep='|')

    1368336-20180426224410679-520935790.png

    #read_table读取文件时必须要用sep来指定分隔符,否则读出来的数据是原始文件,没有分割开。

    import pandas as pd

    pd.read_table('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.csv')

    1368336-20180426224501340-507311282.png

    #read_table读取数据必须指定分隔符

    import pandas as pd

    pd.read_table('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.txt',sep='|')

    1368336-20180426224605645-1046616757.png

    2.读取文本文件时不用header和names指定表头时,默认第一行为表头

    #用header=None表示数据集没有表头,会默认用阿拉伯数字填充表头和索引

    pd.read_table('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.txt',sep='|',header=None)

    1368336-20180426224759907-1866915755.png

    #用names可以自定义表头

    pd.read_table('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.txt',sep='|',

    names=['x1','x2','x3','x4','x5'])

    1368336-20180426224858254-1016291189.png

    3.默认用阿拉伯数字指定索引;用index_col指定某一列作为索引

    names=['x1','x2','x3','x4','x0']

    pd.read_table('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.txt',sep='|',

    names=names,index_col='x0')

    1368336-20180426225022347-270755606.png

    4.以下示例是用skiprows将hello对应的行跳过后读取其他行数据,不管首行是否作为表头,都是将表头作为第0行开始数

    可以对比一下三个例子的区别进行理解

    pd.read_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data1.txt')

    1368336-20180426225126273-1981446421.png

    names=['x1','x2','x3','x4','x0']

    pd.read_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data1.txt',names=names,

    skiprows=[0,3,6])

    1368336-20180426225208651-941727855.png

    pd.read_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data1.txt',

    skiprows=[0,3,6])

    1368336-20180426225257812-1841733706.png

    pd.read_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data1.txt',header=None,

    skiprows=[0,3,6])

    1368336-20180426225330405-1103613451.png

    5.分块读取,data1.txt中总共8行数据,按照每块3行来分,会读3次,第一次3行,第二次3行,第三次1行数据进行读取。

    注意这里在分块的时候跟跳行读取不同的是,表头没作为第一行进行分块读取,可通过一下两个例子对比进行理解。

    chunker = pd.read_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data1.txt',chunksize=3)

    for m in chunker:

    print(len(m))

    print m

    1368336-20180426225501813-266640696.png

    chunker = pd.read_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data1.txt',header=None,

    chunksize=3)

    for m in chunker:

    print(len(m))

    print m

    1368336-20180426225607037-1448990798.png

    (二)将数据写入文本格式用to_csv

    以data.txt为例,注意写出文件时,将索引也写入了

    data=pd.read_table('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.txt',sep='|')

    print data

    1368336-20180426225716866-1303984639.png

    #可以用index=False禁止索引的写入。

    data=pd.read_table('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.txt',sep='|')

    data.to_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\outdata.txt',sep='!',index=False)

    1368336-20180426225814894-925833732.png

    #可以用columns指定写入的列

    data=pd.read_table('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\data.txt',sep='|')

    data.to_csv('C:\Users\xiaoxiaodexiao\pythonlianxi\test0424\outdata2.txt',sep=',',index=False,

    columns=['a','c','d'])

    1368336-20180426225838900-1320029810.png

    展开全文
  • I am making a program that reads time values and readings from a .txt file and plots them on a web-page with matplotlib. In my case there are lots of values, and the plot can look very confusing, and ...

    1586010002-jmsa.png

    I am making a program that reads time values and readings from a .txt file and plots them on a web-page with matplotlib. In my case there are lots of values, and the plot can look very confusing, and with thousands of data points it can also be sluggish.

    I am currently reading the .txt lines with this code to put the values into plottable lists:

    with open('C:/Email/file.txt') as f:

    lines = f.readlines()

    dates = [str(line.split(';')[0]) for line in lines]

    y = [float(line.split(';')[1]) for line in lines]

    z = [float(line.split()[2]) for line in lines]

    The .txt file content looks like this:

    30.05.18_12:27:17; 13.0; -0.0

    30.05.18_12:27:18; 14.0; -0.0

    30.05.18_12:27:19; 15.0; -0.0

    30.05.18_12:27:20; 16.0; -0.0

    So, is there any way to read and plot every Nth (for example every 30. would be ideal) timestamp and value?

    I've been researching different ways but they seem confusing.

    One solution that I was thinking about is to make a counter that counts the amount of read lines, then when the counter is 30, skip 30 the next lines and read and plot the data in line 31. I have no idea how to do this, since I am relatively new to Python.

    Help would be appreciated.

    Just in case, the whole code here:

    from flask import Flask

    import numpy as np

    import matplotlib.pyplot as plt, mpld3

    from datetime import datetime

    app = Flask(__name__)

    @app.route("/")

    def hello():

    with open('C:/Email/file.txt') as f:

    lines = f.readlines()

    dates = [str(line.split(';')[0]) for line in lines]

    y = [float(line.split(';')[1]) for line in lines]

    z = [float(line.split()[2]) for line in lines]

    date = [datetime.strptime(x,'%d.%m.%y_%H:%M:%S') for x in dates]

    plt.figure(figsize=(10,5))

    plt.title('Temperature', fontsize=15)

    plt.ylabel('Temperature' + u'℃', fontsize=15)

    plt.plot_date(date, y, 'r-', label='quadratic')

    plt.ylim([10,35])

    # Print as HTML

    return mpld3.show()

    if __name__ == "__main__":

    app.run()

    EDIT: HUGE THANKS TO MR. F-ROCHE

    Got it working with the following code:

    @app.route("/")

    def hello():

    with open('C:/Email/file.txt') as f:

    # Counts lines in text (Use later to delete lines every X readings)

    # lines = f.readlines()

    cpt = 0

    all_lines = []

    for line in f:

    cpt += 1

    if cpt == 30:

    all_lines.append(line)

    cpt = 0

    dates = [str(line.split(';')[0]) for line in all_lines]

    date = [datetime.strptime(x,'%d.%m.%y_%H:%M:%S') for x in dates]

    y = [float(line.split(';')[1]) for line in all_lines]

    z = [float(line.split()[2]) for line in all_lines]

    plt.figure(figsize=(10,5))

    plt.title('Temperature', fontsize=15)

    plt.ylabel('Temperature' + u'℃', fontsize=15)

    plt.plot_date(date, y, 'r-', label='quadratic')

    plt.ylim([10,35])

    # Print as HTML

    return mpld3.show()

    解决方案

    Something like that will only display every 30 lines:

    with open('C:/Email/file.txt') as f:

    cpt = 0

    for line in f:

    cpt += 1

    if cpt == 30:

    print(line)

    cpt = 0

    you can put line variable in a list like this:

    all_lines = []

    ...

    all_lines.append(line)

    EDIT: or even better with one line of code:

    with open('C:/Email/file.txt') as f:

    all_lines = [v for i, v in enumerate(f, start=1) if i % 30 == 0]

    Then you can apply that to dates, y and z instead.

    展开全文
  • 我有一个文本文件(textfile1.txt),有几行例子:123This is the line 1This is the line 2This is the line 3我可以在python脚本中以书面形式返回文本文件的所有内容:123456def textFile1(self):my_file = open(&...

    本问题已经有最佳答案,请猛点这里访问。

    我遇到了一个关于Python的问题。我有一个文本文件(textfile1.txt),有几行例子:

    1

    2

    3This is the line 1

    This is the line 2

    This is the line 3

    我可以在python脚本中以书面形式返回文本文件的所有内容:

    1

    2

    3

    4

    5

    6def textFile1(self):

    my_file = open("textFile1.txt")

    my_file_contents = my_file.read()

    return my_file_contents

    使用此函数(read())返回文件的所有内容

    现在,我想写另一个文本文件,我用我的python程序再次调用它:

    1

    2

    3The line 1 of my textFile1 is: This is the line 1

    The line 2 of my textFile1 is: This is the line 2

    The line 3 of my textFile1 is: This is the line 3

    但是我唯一能做的就是每次都写所有的内容(这是正常的,因为我返回了textfile1.txt的所有内容),但是我不知道如何只选择textfile1.txt的第1行,在第2行和第3行之后……

    总而言之,我的问题是:如何选择一个文本文件中的一行,然后增加它(例如在终端中打印)?我想是这样的:

    1

    2

    3

    4

    5i=0

    f = open("textFile.txt","r")

    ligne = f.readline()

    print ligne[i]

    i=i+1

    但在Python中,我不知道该怎么做。

    谢谢你

    更新:

    谢谢你的回复,但直到现在,我还是被阻止了。偶然地,是否可以从文本文件中选择一行,尤其是使用此函数:

    1

    2for line in f:

    print line.rstrip() # display all the lines but can I display just the line 1 or 2?

    您想循环文件的行。文件提供了一个非常简单的界面:

    1

    2for line in f:

    # Do whatever with each line.

    请注意,行将包含任何尾随的换行符。

    此外,通常最好在with语句中打开文件:

    1

    2

    3with open('textFile.txt', 'r') as f:

    for line in f:

    # Do whatever with each line.

    这样可以确保在with语句完成时关闭文件,即使存在可能导致跳过显式close调用的异常,或延迟引用,从而导致文件对象的终结器延迟。

    您可以一行一行地迭代文件

    1

    2

    3

    4with open('textFile1.txt') as f:

    for line in f:

    print line

    # Write to the 2nd file textFile2.txt

    1

    2

    3

    4

    5

    6

    7

    8

    9def copy_contents(from_path, to_path):

    from_file = open(from_path, 'r')

    to_file = open(to_path, 'w')

    for no, line in enumerate(from_file.readlines()):

    to_file.write('This is line %u of my textFile: %s' % (no, line))

    from_file.close()

    to_file.close()

    展开全文
  • 这个其实很简单,看样例 #!/usr/bin/python # -*- coding: utf-8 -*- fo = open("test.txt", "r+") ...参考:python学习笔记—— 从第二行开始读文件 指定行读取 转载于:https://blog.51cto.com/weiruoyu/2...

    这个其实很简单,看样例

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    fo = open("test.txt", "r+")
    next(fo)
    for line in fo:
        print line.strip()

    参考:python学习笔记—— 从第二行开始读文件

    指定行读取

    转载于:https://blog.51cto.com/weiruoyu/2342386

    展开全文
  • python读取文本某一内容

    千次阅读 2020-03-19 14:56:52
    时常遇到需要读取文本的指定某一或者某几行的...读取文件的5,实际该文件会整个缓存起来,可以使用linecache.cache这个dict成员查看所有缓存的内容。所以大文件读取不适合这种方法。 方法:使用linecache ...
  • y.append(trainingset[1])#第二部分,即文件中的第二列数据逐一添加到list y中 return(x, y) #x,y组成一个元组,通过函数一次性返回 def plotdata(x, y): length = len(y) pylab.figure(1) pylab....
  • ls = line.split() 这一代码的作用是将每一的元素以空格分开,并存放到一个列表中 将文件全部读入以字符串形式保留 一次性读入到字符串txt中 --------------------------------------...
  • Python学习x:第二章数据处理 读取数据 一、txt文件 read_table(file,names=[列名1,列名2,],sep="") file为文件路径与文件名, names为列名,默认为第一,sep为分隔符, r“” 默认utf-8 二、csv文件 同上。常见...
  • ,用 for 循环 txt 文件时,是按每来循环的。 三,windows编码是 gbk,苹果电脑编码是utf-8,pycharm是默认utf-8编码。所以,在windows电脑上,pycharm环境中,读取 txt 文件时,,需要加上 encoding = "UTF-8...
  • filename = info.txtf = open('info.txt') next(f) for line in f: print(line)next()函数获取了第一...这样其后的FOR循环就直接从第二行开始读取执行。 转载于:https://www.cnblogs.com/ChenYi0919/p/8856553.html...
  • 虽然excel中公式写好了,但是还需要将总计的那复制粘贴到txt文档中,所以索性太麻烦,果断用Python写了一个自动化的脚本,虽然查出的数据还需要手动复制excel中,但是后续操作即可用脚本完成 读取excel指定
  • 其中第一例代表positive,第二列confidence,第三列sentiment 第一步:先打开满意度.txt文件夹,将数据处理为列表的格式 with open("满意度.txt", "r", encoding="utf8") as f: # 对文本文件按行读取 read = f....
  • 读取你刚创建的文件learning_python.txt中的每一, 将其中的Python都替换为另一门语言的名称, 如C。 将修改后的各都打印到屏幕上。 filename = 'learning_python.txt' with open(filena...
  • 目录 python文件读取 python中的I/O流 python文件读取 ...这里的第二个参数可以使是'r','w','rw',含义的话就是字面含义 最常见的读取文件的方法是简单地迭代文件的,我们可以这样写: f = open...
  • 一、问题描述 给定一文件,依次读取文件中各的字符串(字符串之间以空格分开)。...fifth sixth seventh (第二上) ... (其他) 则读取的内容依次为: first second third forth fifth sixth
  • 编写了一个名为learning_python.txt的文件,内容如下: ... 2、第二次打印时遍历文件对象; 3、第三次打印时将各存储在一个列表中,再在with代码块外打印它们。 1、第一次打印的代码: filename = 'learning_
  • 需要修改并提取前两列内容:第一列图片名统一加前缀’9443_’,第二列数值统一加9443。代码实现如下: # -*- coding:utf-8 -*- f = open('val.txt') # 打开txt文件 line = f.readline() # 以的形式进行读取文件 ...
  • # b=file.readline()读取文件单行第二行 # c=file.readlines() 读取文件所有行,保存的结果是一个列表,可任意提取 #for i in file : 通过for循环遍历文件里每一行内容,可适用大文件读取,避免消耗内存 print(i....
  • 利用python读取一个如图所示的txt,共4039,要求跳过第一,每一的第一个数存在字典的键中,字典的值为一个列表,里面记录每对应的数字,列表长度为每行第二个数字,但该数字不记录在列表中。并且要求所有的...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 142
精华内容 56
关键字:

python读取txt第二行

python 订阅