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

数据获取和基本处理

[TOC]复制本地文件到数据工具箱(DSToolBox)DSToolBox(以下简写为DSTB)是隔离的环境,但是在运行时,本地目录(为包含Vagrantfile文件的目录)会映射


目录




  • 复制本地文件到数据工具箱(DSToolBox)

    • 文件的解压缩


  • in2csv 使用

  • 使用 curl 下载互联网数据

  • 调用 Web API




复制本地文件到数据工具箱(DSToolBox)

DSToolBox(以下简写为DSTB) 是隔离的环境,但是在运行 vagrant up 时,本地目录(为包含 Vagrantfile 文件的目录)会映射到 DSTB 的一个目录,这个目录是和 usr, root等系统文件夹在同一个等级的。所以我们可以通过这个文件夹来复制本地文件到DSTB。



  • 在 Linux 中,可以使用 scp (secure cp) 来将文件 copy 到 EC2 实例上。当然,这个需要使用 AWS 服务器。


文件的解压缩



  • .zip ----- unzip File.zip

  • .tar.gz ---- tar -zxvf File.tar.gz

    • z: gzip 压缩格式

    • x: extract 解压

    • v: verbose 详细信息

    • f: file 文件


  • .tar.bz2 ---- tar -jxvf File.tar.bz2

    • j: bzip2 压缩格式


  • .tar.xz ---- tar -Jxvf File.tar.xz : 注意 J 大写

  • .tar.z ---- tar -Zxvf File.tar.z : 注意 Z 大写

  • 事实上,tar 自从 1.5 之后便可以自动识别压缩格式,也就是说上面参数的第一个字母可以不用写。tar -xvf File.tar.gz(/.tar.bz2/.tar.xz)


in2csv 使用



  1. csv 格式定义

    • 每条记录独占一行,使用换行符(CRLF)分隔

    • 最后一行没有换行符

    • 首行为标题行

    # 标准CSV文件格式
    Field1, Field2, Field3 CRLF
    aa, bb, cc CRLF
    dd, ee, ff CRLF
    ...
    xx, yy, zz


  2. File.xlsx -> File.csv

    • 使用 in2csv File.xlsx > File.csv


  3. 查看 File.xlsx 文件

    • 使用 in2csv File.xlsx | head | cut -c 1-80

    • head 默认打印前10行内容;head -n n 为行数,比如 head -3

      • 请注意,这里的 n 行和我们的认知相比是少一行的。比如前三行是 1,2,3,那么使用 -3 这个参数只会打印出 1,2


    • cut 剪切后输出,-c 代表输出指定数量的词,-b 代表输出指定数量的字节。cut -c 1-80 输出1-80的词


  4. 使用 csvlook 查看

    • in2csv File.xlsx | head | csvcut -c ColumnA ColumnB | csvlook

    • csvcut -c ColumnA ColumnB 剪切表格中的 ColumnA 和 ColumnB

    • 我们使用管道的方式,将 csvcut 结果输出到 csvlook 中,以指定的方式显示。显示的效果确实很整齐和直观,和 mardown 中的表格很相似。


  5. 如果一个 .xlsx 文件包含多个 sheet,in2csv 方法默认只显示第一张 sheet,如果需要提取另一张工作表,添加 --sheet


使用 curl 下载互联网数据

通过浏览器打开 URL,不同的 URL 有不同的后缀,而浏览器会默认识别。比如 .pdf, .mp3, 这种格式会自动打开,.html则会自动跳转到相应的网页。

而使用 curl 方式,数据则会被封装下载



  1. curl -s URL, -ssilent。这是因为 curl 在下载时会有默认的进度条,添加 -s 则此进度条默认不显示。

    • curl -s https://xxx/A.txt | head -10 下载 URL 中的 A.txt 并显示前十行。

    • 请注意,由于有后面有 head 显示命令,请添加 -s 选项,因为不加的话显示信息的格式等可能会出现错误


  2. curl -s https://xxx/A.txt > B.txt 将 A.txt 另存为 B.txt。

    • 另存命令一定要加 -s 参数,不然保存的 B.txt 会出现多余文本

    • > 也可以换成 -o,效果是一致的


  3. FTP 下载

    • curl -u username: password ftp://host/file

    • 这条命令使用 -u 参数,username:password 是在这条 URL 受密码保护时添加使用。


  4. 如果 URL 是一个目录,那么 curl 会将目录内容列出来。


  5. 如果访问简写的 URL

    • curl -L j.mp/locatbbar 必须添加 -L 参数 或者 --location 参数。curl 会进行重定向

    • curl -I URL返回相应信息的 HTTP 头部数据(报文)。当我们没有得到想要的结果的时候,就可以使用这条命令来查看目标网站的状态。

      ```bash
      curl -I baidu.com
      $ HTTP/1.1 200 OK
      Date: Wed, 25 Sep 2019 08:10:10 GMT
      Server: Apache
      Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
      ETag: "51-47cf7e6ee8400"
      Accept-Ranges: bytes
      Content-Length: 81
      Cache-Control: max-age=86400
      Expires: Thu, 26 Sep 2019 08:10:10 GMT
      Connection: Keep-Alive
      Content-Type: text/html
      ```


    • HTTP 报文的第一行是状态码

      • 301: 永久移除

      • 404:未找到

      • 403:被禁止




调用 Web API



  • API: Application Programming Interface 应用程序编程接口

  • Web API 大多以 JSON, XML 这样的结构化形式返回数据。

    • 结构化形式的数据的优势在于:易于被其他工具(比如 jq)处理


  • 有的 API 是以的形式返回数据。意味着只要连接 API 数据就会源源不断到达。

  • 有的 API 需要使用 OAuth协议 登录。我们可以使用 curlicue 工具进行来快速进行握手。使用流程;

    • curlicue-setup 对特定的 API 获取授权

    • 使用 curlicue 调用 API。



推荐阅读
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 本文提供了一个关于AC自动机(Aho-Corasick Algorithm)的详细解析与实现方法,特别针对P3796题目进行了深入探讨。文章不仅涵盖了AC自动机的基本概念,还重点讲解了如何通过构建失败指针(fail pointer)来提高字符串匹配效率。 ... [详细]
  • 解决UIScrollView自动偏移问题的方法
    本文介绍了一种有效的方法来解决在使用UIScrollView时出现的自动向下偏移的问题,通过调整特定的属性设置,可以确保滚动视图正常显示。 ... [详细]
  • 如何高效渲染JSON数据
    本文介绍了在控制器中返回JSON结果的方法,并详细说明了如何利用jQuery处理和展示这些数据,为Web开发提供了实用的技巧。 ... [详细]
  • Awk是一款功能强大的文本分析与处理工具,尤其在数据解析和报告生成方面表现突出。它通过读取由换行符分隔的记录,并按照指定的字段分隔符来划分和处理这些记录,从而实现复杂的数据操作。 ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 本文探讨了一种常见的C++面试题目——实现自己的String类。通过此过程,不仅能够检验开发者对C++基础知识的掌握程度,还能加深对其高级特性的理解。文章详细介绍了如何实现基本的功能,如构造函数、析构函数、拷贝构造函数及赋值运算符重载等。 ... [详细]
  • 3DSMAX制作超现实的体育馆模型
    这篇教程是向脚本之家的朋友介绍3DSMAX制作超现实的体育馆模型方法,教程制作出来的体育馆模型非常地不错,不过教程有点难度,需要有一定基础的朋友学习,推荐到脚本之家,喜欢的朋友可 ... [详细]
  • 本文介绍了如何在AngularJS应用中使用ng-repeat指令创建可单独点击选中的列表项,并详细描述了实现这一功能的具体步骤和代码示例。 ... [详细]
  • 在项目冲刺的最后一天,团队专注于软件用户界面的细节优化,包括调整控件布局和字体设置,以确保界面的简洁性和用户友好性。 ... [详细]
  • JavaScript 页面卸载事件详解 (onunload)
    当用户从页面离开时(如关闭页面或刷新页面),会触发 onunload 事件,此时可以执行预设的脚本。需要注意的是,不同的浏览器对 onunload 事件的支持程度可能有所不同。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 探索Java 11中的ZGC垃圾收集器
    Java 11引入了一种新的垃圾收集器——ZGC,由Oracle公司研发,旨在支持TB级别的内存容量,并保证极低的暂停时间。本文将探讨ZGC的开发背景、技术特点及其潜在的应用前景。 ... [详细]
  • 本文探讨了使用普通生成函数和指数生成函数解决组合与排列问题的方法,特别是在处理特定路径计数问题时的应用。文章通过详细分析和代码实现,展示了如何高效地计算在给定条件下不相邻相同元素的排列数量。 ... [详细]
author-avatar
星期五2502915743
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有