Python 数据处理文章总结

1 Pathlib

读取数据 文件为对象的操作

1) 获取特定父级目录

from pathlib2 import Path

current_path = Path.cwd()

for p in current_path.parents: 

      print(p)

2) 如何处理一个很长的文件名呢

常用的文件名操作属性如下:

name 目录的最后一个部分

suffix 目录中最后一个部分的扩展名

suffixes 返回多个扩展名列表

stem 目录最后一个部分,没有后缀

with_name(name) 替换目录最后一个部分并返回一个新的路径

with_suffix(suffix) 替换扩展名,返回新的路径,扩展名存在则不变

3)路径拼接和分解

#直接传进一个完整字符串

example_path1 = Path('/Users/Anders/Documents/powershell-2.jpg')

#也可以传进多个字符串

example_path2 = Path('/', 'Users', 'dongh', 'Documents', 'python_learn', 'pathlib_', 'file1.txt')

#也可以利用Path.joinpath()

example_path3 = Path('/Users/Anders/Documents/').joinpath('python_learn')

# #利用 / 可以创建子路径

example_path4 = Path('/Users/Anders/Documents')

example_path5 = example_path4 / 'python_learn/pic-2.jpg'

4)遍历文件夹

我们可以在路径对象后面直接使用**iterdir()**方法,该方法返回一个生成器,我们可以循环遍历出所有指定目录下的目录路径。

# 返回目录中最后一个部分的扩展名

example_path = Path('/Users/Anders/Documents')

[path for path in example_path.iterdir()]

# 输出# [PosixPath('/Users/Anders/Documents/abc.jpg'),

#  PosixPath('/Users/Anders/Documents/book-master'),

5) 文件操作 核心

open方法就可以,它的操作语法是:open(mode=‘r’, bufferiong=-1, encoding=None, errors=None, newline=None)

对于简单的文件读写,在pathlib库中有几个简便的方法:

.read_text(): 以文本模式打开路径并并以字符串形式返回内容。

.read_bytes(): 以二进制/字节模式打开路径并以字节串的形式返回内容。

.write_text(): 打开路径并向其写入字符串数据。

.write_bytes(): 以二进制/字节模式打开路径并向其写入数据

创建文件夹和删除文件夹

关于这里的创建文件目录mkdir方法接收两个参数:

parents:如果父目录不存在,是否创建父目录。

exist_ok:只有在目录不存在时创建目录,目录已存在时不会抛出异常。

判断文件及文件夹对象是否存在

关于文件的判断还有很多相关属性,罗列如下:

is_dir() 是否是目录

is_file() 是否是普通文件

is_symlink() 是否是软链接

is_socket() 是否是socket文件

is_block_device() 是否是块设备

is_char_device() 是否是字符设备

is_absolute() 是否是绝对路径

resolve() 返回一个新的路径,这个新路径就是当前Path对象的绝对路径,如果是软链接则直接被解析

absolute() 也可以获取绝对路径,但是推荐resolve()

文件的信息

只需要通过**.stat()**方法就可以返还指定路径的文件信息

exists() 该路径是否指向现有的目录或文件:

6) 实例操作

找到一个路径内所有子路径的csv文件,并且读取随机20个生成一个csv

csv_generator = pathlib.Path ("data/TVF/").glob(**/*.csv)

random.seed(0)

csv_list = random.sample( list(csv_generator), 20)

df = pd.Dataframe(csv_list,columns = [ csv_name'] )

df.to_csv('csv_list.csv')

Pathlib 用法

官方文档

比os更好用

你可能感兴趣的:(Python 数据处理文章总结)