爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 23289|回复: 11

[求助] Python 读取特定格式TXT文本

[复制链接]

新浪微博达人勋

发表于 2020-3-20 19:38:58 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
2.PNG
求助各位大佬,想用python读取TXT中的特定内容,其中一个模块的格式是这样的,想要读取  经纬度、年份以及  Z   下面0.0对应的 1 列的数据
不知道各位大佬有什么高招
附件是具体的文件
1.PNG

OSDO1012.txt

7.27 MB, 下载次数: 13, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-3-21 09:09:18 | 显示全部楼层

回帖奖励 +20 金钱

python txt文件常用读写操作


文件的打开的两种方式

复制代码
1 f = open("data.txt","r")   #设置文件对象
2 f.close() #关闭文件
3
4
5 #为了方便,避免忘记close掉这个文件对象,可以用下面这种方式替代
6 with open('data.txt',"r") as f:    #设置文件对象
7     str = f.read()    #可以是随便对文件的操作
复制代码


一、读文件

    1.简单的将文件读取到字符串中



1 f = open("data.txt","r")   #设置文件对象
2 str = f.read()     #将txt文件的所有内容读入到字符串str中
3 f.close()   #将文件关闭




    2.按行读取整个文件

复制代码
1 #第一种方法
2 f = open("data.txt","r")   #设置文件对象
3 line = f.readline()
4 line = line[:-1]
5 while line:             #直到读取完文件
6     line = f.readline()  #读取一行文件,包括换行符
7     line = line[:-1]     #去掉换行符,也可以不去
8 f.close() #关闭文件
9
10
11 #第二种方法
12 data = []
13 for line in open("data.txt","r"): #设置文件对象并读取每一行文件
14     data.append(line)               #将每一行文件加入到list中
15
16
17 #第三种方法
18 f = open("data.txt","r")   #设置文件对象
19 data = f.readlines()  #直接将文件中按行读到list里,效果与方法2一样
20 f.close()             #关闭文件
复制代码


    3.将文件读入数组中

1 import numpy as np
2 data = np.loadtxt("data.txt")   #将文件中数据加载到data数组里


二、写文件

   1.简单的将字符串写入txt中

1 with open('data.txt','w') as f:    #设置文件对象
2     f.write(str)                 #将字符串写入文件中


   2.列表写入文件

      单层列表

1 data = ['a','b','c']
2 #单层列表写入文件
3 with open("data.txt","w") as f:
4     f.writelines(data)
     双层列表

复制代码
1 #双层列表写入文件
2
3 #第一种方法,每一项用空格隔开,一个列表是一行写入文件
4 data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
5 with open("data.txt","w") as f:                                                   #设置文件对象
6     for i in data:                                                                 #对于双层列表中的数据
7         i = str(i).strip('[').strip(']').replace(',','').replace('\'','')+'\n'  #将其中每一个列表规范化成字符串
8         f.write(i)                                                                 #写入文件
9
10
11 #第二种方法,直接将每一项都写入文件
12 data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
13 with open("data.txt","w") as f:                                                   #设置文件对象
14     for i in data:                                                                 #对于双层列表中的数据
15         f.writelines(i)                                                            #写入文件
复制代码


   3.数组写入文件中

复制代码
1 #将数组写入文件
2 import numpy as np
3
4 #第一种方法
5 np.savetxt("data.txt",data)     #将数组中数据写入到data.txt文件
6 #第二种方法
7 np.save("data.txt",data)        #将数组中数据写入到data.txt文件
密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

新浪微博达人勋

发表于 2020-3-21 10:41:54 | 显示全部楼层

回帖奖励 +20 金钱

可以使用pandas的.read_csv,读取文件的时候可以给每一列起名字,通过列名来调取相应列的数据。
import pandas as pd
data = pd.read_csv(" OSDO1012.txt",sep=',',header=None, names=['lat','lon','time','z']
#列名的顺序和个数这些根据具体情况而定,这里只是举个例子
使用data.lat就可以读取名为lat这一列的数据
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2020-3-20 20:19:06 | 显示全部楼层

回帖奖励 +20 金钱

我也遇到类似你这样的问题。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-21 12:32:10 | 显示全部楼层
cwllsss 发表于 2020-3-21 10:41
可以使用pandas的.read_csv,读取文件的时候可以给每一列起名字,通过列名来调取相应列的数据。
import pa ...

感谢您的回复,我这边用了一个比较麻烦的方法,不过还是解决了
谢谢您的提示,我等下去进行pandas的学习
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-21 12:34:42 | 显示全部楼层
问题已解决,局限性很大的方法,仅针对我自己这个文件,有需要的可以参考一下

READTXT.py

1.99 KB, 下载次数: 37, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-21 12:37:37 | 显示全部楼层
appleling 发表于 2020-3-20 20:19
我也遇到类似你这样的问题。

我解决了,贴了文件,不过局限性很大,你有需要可以进行参考
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-23 14:42:01 | 显示全部楼层
楼主您好,我把一个二维的数据t(lat,lon)写成txt,但是出来是一列,您知道怎么让数据写出来时是nlat行nlon列吗?就是数据是一个矩阵的形式
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-4-26 19:16:51 | 显示全部楼层
subtropical 发表于 2020-3-23 14:42
楼主您好,我把一个二维的数据t(lat,lon)写成txt,但是出来是一列,您知道怎么让数据写出来时是nlat行nlo ...

numpy,reshape
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-10-6 10:23:27 | 显示全部楼层
我也遇到类似你这样的问题。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表