关于初学pytorch数据读取、处理的一些技巧和函数

本文详细介绍了如何使用Python的shutil库进行文件判断、创建和复制,requests库下载文件和网页,以及使用zipfile处理解压缩和json.load解析数据。重点展示了文件操作和网络数据获取在Python开发中的应用。

import shutil --shutil库

关于更多可参考Python模块——shutil模块详解_shutils-CSDN博客

判断文件是否存在并创建 

os.path.exists(dir_name):查看给定的文件/目录是否存在,存在返回True,不存在返回False。
if not os.path.exists(dir_name):
    os.mkdir(dir_name)# 创建一个dir_name文件夹

从csv文件中获得下载链接并下载 Requests库的get()方法

if not os.path.exists(filename):
    response = requests.get(link, stream=True) #link为下载文件网址
    with open(filename, 'wb') as f:
        for chunk in response.iter_content(chunk_size=1024):
            if chunk:
                f.write(chunk)

Respose 对象的 iter_content()方法**
从Internet上下载文件和网页

下载并保存到文件的步骤:
①调用requests.get()下载该文件
②用’wb’调用open(),以写二进制的方式打开一个新文件
③利用Respose对象的iter_content()方法循环
④在每次迭代中调用write(),将内容写入该文件
⑤调用close()关闭该文件
注:

下载时,用Response.iter_content更方便些。requests.get(url)默认是下载在内存中的,下载完成才存到硬盘上,可以用Response.iter_content来边下载边存硬盘。其中chunk_size代表下载的块代表。

解压缩:zipfile函数

zip_list = ['mchar_train', 'mchar_test_a', 'mchar_val']
for little_zip in zip_list:  
    if not os.path.exists(dir_name + '/' + little_zip):
        zip_file = zipfile.ZipFile(dir_name + '/' + little_zip + '.zip', 'r')
        zip_file.extractall(path=dir_name) #extractall: 解压缩
ZipFile.extract(member[, path[, pwd]])
将zip文档内的指定文件解压到当前目录。参数member指定要解压的文件名称或对应的ZipInfo对象;参数path指定了解析文件保存的文件夹;参数pwd为解压密码。
class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])

创建一个ZipFile对象,表示一个zip文件。参数file表示文件的路径或类文件对象(file-like object);参数mode指示打开zip文件的模式,

默认值为'r',表示读已经存在的zip文件,也可以为'w'或'a','w'表示新建一个zip文档或覆盖一个已经存在的zip文档

os.listdir函数

基本语法:os.listdir(path),其中参数需要列出的目录路径
返回值:返回指定路径下的文件和文件夹列表。

可用于得到训练集、验证集下所有图片的名称,并使用shutil库将其复制到新文件夹里。

json.load(open(path))

这里的open(path)指打开path路径下的json文件,json.load()用于读取文件中的JSON数据。该方法接收一个文件对象并返回解析为Python对象的JSON数据。返回的对象类型为字典,如下例子:

import json

with open('united_states.json') as f:
  data = json.load(f)

print(type(data))

结果:
<class 'dict'>

这样就可以得到通过字典索引得到键值:

print(data.keys())

 OUTPUT:  dict_keys(['name', 'population', 'capital', 'languages'])

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值