python中各种文件格式的文件读取和保存(csv, txt, xlsx, 图片) 

python中各种文件格式的文件读取和保存(csv, txt, xlsx, 图片) 

                                                                                         文件打开方式

模式说明
r读模式
w写模式
a追加模式
b二进制模式(可与其他模式组合使用)
+读、写模式(可与其他模式组合使用)

 



#! _*_ coding='UTF-8' _*_

import numpy as np

import pandas as pd

import csv

import os

from PIL import Image

 

#读取xlsx格式的文件 第一个sheet,读取行索引和列索引  DataFrame格式

data_set = pd.read_excel('filename.xlsx', sheet_name=0, header=None)

#将DataFrame格式转化为array格式

data_set = np.array(data_set, dtype=float)

print("数据类型:",type(data_set), data_set)

 

 

#读取csv格式的文件

data_set = pd.read_csv('filename.csv', header=None)

#将DataFrame格式转化为array格式

data_set = np.array(data_set)

print("数据类型:",type(data_set), data_set)

 

 

#保存文件为csv格式  需首先将数据转化为DataFrame格式

data_set = pd.DataFrame(data_set)

data_set.to_csv('save_filename.csv')

 

 

#使用csv模块读取csv文件 'r'表示读模式

with open('filename.csv', 'r') as file:

    data_set = csv.reader( file )

    print(type(data_set))

    temp_set = []

    for line in data_set:

        temp_set.append(line)

 

 

#使用csv模块保存为csv格式 'w'表示写模式

with open('saved_filename.csv', 'w') as file:

    data_set = csv.writer( file )

    # data_set.writerows( temp_set ) #一次保存完

    for i in range(len(temp_set)): #分开保存

        data_set.writerow( temp_set[i] )

 

 

#读取图片文件夹下的图片

root_path = 'D:/Code_py/Python库/'

images_project = 'image_filesname/'

images_path = os.path.join(root_path, images_project)

#将图片名称存入列表

images_list = os.listdir(images_path)

print(images_list)

for image_path in images_list:

    with Image.open(os.path.join(images_path, image_path)) as im:

        #打印图片的信息

        # print(im)

        #保存图片为另一种格式

        im.save( os.path.join(images_path, image_path[:-4]+'.png') )

 

 

#读取txt文件夹下的txt文件

root_path = 'D:/Code_py/Python库/'

txts_project = 'txt_filesname/'

txts_path = os.path.join(root_path, txts_project)

#将图片名称存入列表

txts_list = os.listdir(txts_path)

print(txts_list)

all_txt = []

for txt_path in txts_list:

    with open(os.path.join(txts_path, txt_path),'r',encoding='UTF-8') as txt:

        #读取当前txt文件的所有内容

        txt_lines = txt.readlines()

    txt_label = []

    #将当前txt文件的每行切割

    for line in txt_lines:

        label = line.strip().split(',')

        txt_label.append(label)

    #保存txt文件为另一种格式

    np.save( os.path.join(txts_path, txt_path[:-4]+'.npy'), txt_label )

    #存储所有的txt文件内容

    all_txt.append(txt_label)

1、读取txt文件

下面的代码中需要设置你读取数据的数组的维度信息,如下

datamat = np.zeros((rows, 6))  #表示6列数据


# -*- coding: cp936 -*-

import re

import linecache

import numpy as np

import os

 

filename = 'preprocess1.txt'

 

 

# 数值文本文件转换为双列表形式[[...],[...],[...]],即动态二维数组

# 然后将双列表形式通过numpy转换为数组矩阵形式

 

# 数值文本文件直接转换为矩阵数组形式方法二

def txt_to_matrix(filename):

    file = open(filename)

    lines = file.readlines()

    # print lines

    # ['0.94\t0.81\t...0.62\t\n', ... ,'0.92\t0.86\t...0.62\t\n']形式

    rows = len(lines)  # 文件行数

 

    datamat = np.zeros((rows, 6))  # 初始化矩阵

 

    row = 0

    for line in lines:

        line = line.strip().split('\t')  # strip()默认移除字符串首尾空格或换行符

        print(line)

        datamat[row, :] = line[:]

        row += 1

 

    return datamat

 

 

# 数值文本文件直接转换为矩阵数组形式方法三

def text_read(filename):

    # Try to read a txt file and return a matrix.Return [] if there was a mistake.

    try:

        file = open(filename, 'r')

    except IOError:

        error = []

        return error

    content = file.readlines()

 

    rows = len(content)  # 文件行数

    datamat = np.zeros((rows, 6))  # 初始化矩阵

    row_count = 0

 

    for i in range(rows):

        content[i] = content[i].strip().split('\t')

        datamat[row_count, :] = content[i][:]

        row_count += 1

 

    file.close()

    return datamat

 

 

'''if __name__ == '__main__':

    filename = 'winedata.txt'

      # 二维列表

    data = txt_to_matrix(filename)

    print (data)

    print(data.__len__())

    #out = text_read('winedata.txt')

    #print(out)'''

 

2、读取csv文件

在python中内置了csv库,通过调用相关函数即可实现文件的读取,将csv文件读取载入到数组可以采用python的pandas库中的read_csv()函数来读取。具体实现如下:


import numpy as np

import pandas as pd

import os

 

df = pd.read_csv('preprocess.csv') #返回一个DataFrame的对象,这个是pandas的一个数据结构

df.columns=["Col1","Col2","Col3","Col4","Col5","Col6","Col7","Col8"]

 

X = df[["Col1","Col2","Col3","Col4","Col5","Col6","Col7"]] #抽取前七列作为训练数据的各属性值

X = np.array(X)

print X

 

y1 = df["Col8"] #最后一列作为每行对应的标签label

Y = np.array(y1) 

print Y

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值