数据分析之: 基本文件操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/happyhorizion/article/details/79828671

查看数据和文件基本操作

拿到数据后, 我们都会马上打开看看, 最直接的动作就是鼠标点开, 看看都有哪些文件夹, 里面都有哪些数据. 如果数据比较少, 这样简单粗暴的查看方式在时间上还是可以接受的. 但是如果数据文件很多, 特别是文件夹嵌套了很多层, 那这样的方式查看数据就不太明智了. 好在linux和python都提供了很多可以帮助我们快速浏览数据的工具. 例如linux下的cat, tree, wc等, 还有python的系统工具库os(import os)等等.

查看文件

拿到数据后, 通常我们都要先看看一共有多少个文件, 结合使用ls, grep和wc几个linux命令行工具,就可以方便地查看了:

查看文件个数:

统计当前路径下的文件夹个数: ls -l |grep "^d"|wc -l
统计当前路径下的文件的个数: ls -l |grep "^-"|wc -l

大致浏览:
如何想看看当前路径下的目录结构, 可以用shell中的 tree这个命令: tree .

查看文件内容:

  1. 在shell中查看文件:
    cat [文件名] | less

  2. 用python打开文件
    open(filename, option ) option设置常用的有:

    w 以写方式打开,
    a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
    r+ 以读写模式打开
    w+ 以读写模式打开 (参见 w )
    a+ 以读写模式打开 (参见 a )
    rb 以二进制读模式打开
    wb 以二进制写模式打开 (参见 w )
    ab 以二进制追加模式打开 (参见 a )
    rb+ 以二进制读写模式打开 (参见 r+ )
    wb+ 以二进制读写模式打开 (参见 w+ )
    ab+ 以二进制读写模式打开 (参见 a+ )

其他python命令:
1) 检验给出的路径是否是一个文件:os.path.isfile()
2) python检验给出的路径是否是一个目录:os.path.isdir()
3) 判断是否是绝对路径:os.path.isabs()
4) 检验给出的路径是否真地存: os.path.exists()
5) 返回一个路径的目录名和文件名: os.path.split()

os.path.split('/home/dl/Data/test.txt')
Out[146]: ('/home/dl/Data', 'test.txt')

获取文件信息:
1) 获取文件大小:os.path.getsize(filename)
2) 修改文件权限与时间戳:os.chmod(file)
3) 获取文件大小:os.path.getsize(filename)
4) 返回指定目录下的所有文件和目录名: os.listdir()
5) 分离扩展名:os.path.splitext()
6) 获取路径名:os.path.dirname()
7) 获取文件名:os.path.basename()

扫描二维码关注公众号,回复: 3249400 查看本文章

创建文件

  • 用shell命令行创建: touch fileName

  • python文件和目录创建方法:
    1) 创建空文件 os.mknod("test.txt")
    2) 在当前路径下创建一个文件夹: os.mkdir(folderName)
    3) 在非当前路径下创建文件夹, 需提供文件夹完整路径 folderPath: os.makedir(folderPath)
    4)

删除文件

删除一个文件: os.remove()
删除多个目录:os.removedirs(r“c:\python”)

数据读写

读文件:
读文件有很多方法, 比如使用文件对象的readline()方法读取一行数据(内存需求小, 但是速度慢), 或者readlines()读取多行数据(内存需求大, 速度快, 最大的好处是可以方便地控制读取的行数), 还可以用for循环加上open()函数实现.

  • readline()方法
f = open("test.txt")             # 返回一个文件对象  
line = f.readline()             # 调用文件的 readline()方法  
while line:  
    print(line, end = '')       
    line = f.readline()
f.close()
  • readlines()方法
f = open("test.txt")
lines = f.readlines(10000) #  f.readlines(n) n代表读取的行数
for line in lines:
    print(line)
f.close()
  • for循环读取文件
for line in open("test.txt"):  
    print(line)

最后给出一个数据读写的例子:

import os
import numpy as np

testFile = "test.txt"
if not os.path.isfile(testFile):
    os.mknod() #创建空文件
else:
    fp = open(testFile,'+w') #直接打开一个文件,如果文件不存在则创建文件
    for i in np.linspace(1,10,10):
        fp.write('line'+str(i)+'\n')
    fp.close()

for line in open(testFile):
    print(line)

猜你喜欢

转载自blog.csdn.net/happyhorizion/article/details/79828671