热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python怎么读取txt文件ENVI_IDL:文本文件的读取(主要是txt、csv文件)

本文主要介绍关于开发语言,经验分享,算法的知识点,对【ENVI_IDL:文本文件的读取(主要是txt、csv文件)】和【python怎么读取txt文件】有兴趣的朋友可以看下由【炒茄子】投稿的技术文章

本文主要介绍关于开发语言,经验分享,算法的知识点,对【ENVI_IDL: 文本文件的读取(主要是txt、csv文件)】和【python怎么读取txt文件】有兴趣的朋友可以看下由【炒茄子】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的IDL相关技术问题。

python怎么读取txt文件

1. 需要用到的函数

——————————————————————————————————————————

——————————————————————————————————————————

openr, 1, 路径——》1表示该路径下文件的内存地址的代称

变量 = file_lines(路径)——》传入文件所在的路径,返回该文件的行数

readf, 代称, 接收数据的变量——》第一个参数为文件的内存地址的代称, 第二个是接收数据的变量

skip_lun, 代称, 行数, /lines——》指定文件的代称, 指定需要跳过的行数, /lines表示前面跳过的是行

free_lun, 1代称——》指定文件的代称, 用于关闭文件的内存占用

——————————————————————————————————————————

——————————————————————————————————————————

2. 编程
pro week_six_study1
  ; 如何读取文本数据(主要是读取txt、csv后缀的文本文件)(txt是以空格分隔,csv是以半角逗号分隔)
  
  ; 路径
  file_path = 'D:/IDL_program/experiment_data/chapter_4/2013_year_aop.txt'
  
  ; 小白读取txt文件
  ; 打开该txt文件——》如果你只是读文件openr就可以了,openw既可以读也可以写(会覆盖原来的文件,慎用)
  openr, 1, file_path  ; 第一个1用来表示这个文件的内存地址,第二个是该文件的路径
  ; 由于第一行是索引,索引是文字,索引下面是数字, 两者类型不一致,不能放在一个数组里面存储,所以需要跳过
  skip_lun, 1, 1, /lines  ; 第一个1表示文件的编号或者说是内存地址的代称,第二个1表示需要跳过的行数,这里只跳过第一行,所以是1,第三个表示第二个参数的单位是行而不是列
  ; 创建存储的数组
  box_data = fltarr(5, 56304)  ; 通过记事本打开该文件事先查看到该文件的数据的行列数(共有5列56305行,但是第一行跳过所以只需要56304行)
  ; 获取文件的数据
  readf, 1, box_data
  ; 检验一下
  print, box_data[0, -1]  ; 发现一个新的玩意就是idl的取值也可以负值去取(和python一样,不详讲),这里等价于box_data[0, 56303]
  ; 关闭文件(养成好习惯)
  free_lun, 1
  
  ; 正常人读取txt文件
  ; 打开该txt文件
  openr, 1, file_path  ; 假如你上面没有free_lun,1那么这里是打不开的
  ; 拿到第一行的索引数据,这也是有用的(获取列数),跳过显得有些浪费
  ; 预先有一个str变量存储
  str = ''
  readf, 1, str  ; 这里你可能会疑惑,但是呢?readf是秉承着有多少给多少,现在str是一个字符串,默认输出一行,如果你是数组,那么根据数组的行列数有多少给多少
  ; 对得到的存储有第一行索引数据的str变量进行分析,通过该字符串分析出整个数据有多少列
  son_str_array = strsplit(str, /extract)  ; 不传入以什么作为分隔符,默认以空格作为该字符串的分隔符
  ; son_str_array里面有几个元素,那么整个数据就有几列
  column = n_elements(son_str_array)
  ; 现在获取行数
  row = file_lines(file_path) - 1  ; 第一行是索引,我们不放进下面的数组里面
  ; 创建存储的数组
  box_data = fltarr(column, row)
  ; 获取数据(这里得到的行数是从第二行的开头开始的,因为前面已经readf, 1, str了,所以文件指针已经指到了第二行开头处)
  readf, 1, box_data
  ; 检验一下
  print, box_data[0, -1]
  ; 关闭文件
  free_lun, 1
  
  ; 高手读取txt文件
  ; 打开文件
  openr, 1, file_path
  ; 跳过第一行
  skip_lun, 1, 1, /lines
  ; 读取文件的行数
  row = file_lines(file_path) - 1
  ; 创建存储的列表
  box_data = fltarr(5, row)  ; 这里的5是通过txt记事本打开看到的
  ; 获取txt文件数据
  readf, 1, box_data
  ; 检验一下
  print, box_data[0, -1]
  ; 关闭文件
  free_lun, 1
  ; 可能你会问,着有什么高级,我想说,高级不是什么东西都要编程去完成,高效才是最重要的
  ; 在这种文件里面,我们知道列数一般是不会变化的,所以直接用记事本打开看一下又何妨,但是行数由于每一个文件的行数都不一样
  ; 如果是一个文件那么还好,如果是很多文件,你都用记事本打开看一下吗,这是不现实,多了的我就不讲了。
  
  ; 读取csv文件
  ; 路径
  file_path = 'D:/IDL_program/experiment_data/chapter_4/air_quality_data.csv'
  ; 读取文件
  data = read_csv(file_path, header=par_name)  ; 第一行的索引给了数据给了par_name(但是无论你需不需要第一行索引数据,read_csv()函数默认都不会去读取第一行的数据)
  ; 查看data的类型
  help, data  ; 可以发现,这是一个结构体
  ; 输出第一列数据
  print, data.(0)
  ; 输出第一行的索引数据
  print, par_name
  ; 输出列索引是NO2的数据(第一种方法你可以自己去数它所在的列号按上面的方式进行读取并输出,也可以按下面这种方法)
  NO2_index = where(par_name eq 'NO2')
  print, data.(NO2_index)
end

———————————————————————————————————————————

———————————————————————————————————————————

我是炒茄子,谢谢大家!!

本文《ENVI_IDL: 文本文件的读取(主要是txt、csv文件)》版权归炒茄子所有,引用ENVI_IDL: 文本文件的读取(主要是txt、csv文件)需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 本文介绍了一个Python函数same_set,用于判断两个相等长度的数组是否包含相同的元素。函数会忽略元素的顺序和重复次数,如果两个数组包含相同的元素,则返回1,否则返回0。文章还提供了函数的具体实现代码和样例输入输出。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
author-avatar
qs08y602lt
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有