精华内容
下载资源
问答
  • py文件读写 三个重要知识点: 1.读取时,对字符串去尾(strip)、切割后存入list(split) 2.写入时,将list转换为字符串写入(join) #读取file def Read_File ( filename ) : l = [ ] with open ...

    string类

    有了string就可以跟字符数组说拜拜了,方便多了。。。
    常用:
    长度:str.length()
    尺寸:str.size()
    比较:str1.compare(str2)
    连接:str1+=str2
    连接:str1.append(str2)
    提取:str2=str2.substr(pos1)
    查找:pos=str1.find(str2)
    插入:str1.insert(pos1,str2);
    替换:str1.replace(pos1,str2);
    删除:str1.erase(pos,len)
    清除:str.clear()
    详细说明:https://blog.csdn.net/qq_37941471/article/details/82107077

    文件读取

    流的定义以及流的一些知识:
    当程序与外界进行信息交换时,存在两个对象,一个是程序中的对象,另一个是文件对象。
    流是信息流动的一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。
    流可以存在于文件与内存(文件读写)、键盘与内存(cin)、显示器与内存(cout)。。。

    cout补充
    1、用“cout<<”输出基本类型的数据时,可以不必考虑数据是什么类型,系统会判断数据的类型,并根据其类型选择调用与之匹配的运算符重载函数。这个过程都是自动的,用户不必干预。如果在C语言中用prinf函数输出不同类型的数据,必须分别指定相应的输出格式符,十分麻烦,而且容易出错

    2、cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插 人一个endl时,不论缓冲区是否已满,都立即输出流中所有数据,然后插入一个换行符, 并刷新流(清空缓冲区)。 注意如果插人一个换行符”\n“(如cout<<a<<"\n"),则只输出和换行,而不刷新cout 流(但并不是所有编译系统都体现出这一区别)。
    注:缓冲是指将所有输出集中存放,然后一次性显示在屏幕上,避免多次刷屏。

    3、在iostream中只对"<<“和”>>“运算符用于标准类型数据的输入输出进行了重载,但未对用户声明的类型数据的输入输出 进行重载。如果用户声明了新的类型,并希望用”<<“和”>>"运算符对其进行输入输出,按照重运算符重载来做。

    cin补充
    1、使用cin,从流中读出的字符,流中就没有这字符了,再次读取时只能读取剩下的
    2、缓冲去只有在遇到EOF(表示文件结尾)、手动敲回车、流(缓存区)满时,才将流中的字符全部读出(即清空缓存区)
    来源:https://www.cnblogs.com/cthon/p/9185282.html

    文件读写

    文件读写时同样是建立一个流,连接文件与程序中开辟的内存。
    读文件时,建立一个读文件的流ifstream,程序每一次提取(>>)都是遇到流中某些特定的控制符时(空格或换行),然后刷新缓冲区,开始下一次提取。

    /**
     *@name Readfile:从txt中读取数据
     *@param1 (*s)[3]:传入一个二维数组的地址
     *@param2 filename:所要读取的文件名
    **/
    void Readfile(string (*s)[3],string filename)
    {
    	int i,j;
    	ifstream in(filename,ios::in);
    	if(!in.is_open())
    	{
    		//如果没有打开文件则报错
    		cout<<"error"<<endl;
    	}
    	else
    	{
    		//若顺利打开文件 将文件内容放入二维string数组 in每次读取到空格或换行
    		for(i=0;i<500;i++)
    		{
    			for(j=0;j<3;j++)
    			{
    				in>>s[i][j];
    			}
    		}
    	}
    	in.close();
    }
    

    写文件也是相同的道理

    /**
     *@name Writefile:将数据写入txt文件中
     *@param1 (*s)[3]:传入一个二维数组的地址
     *@param2 filename:所要读取的文件名
    **/
    void Writefile(string (*s)[3],string filename)
    {
    	int i,j;
    	ofstream out(filename,ios::out);
    	for(i=0;i<500;i++)
    	{
    		for(j=0;j<3;j++)
    		{
    			out<<s[i][j]<<' ';
    		}
    		out<<'\n';
    	}
    	out.close();
    }
    

    py文件读写

    三个重要知识点:
    1.读取时,对字符串去尾(strip)、切割后存入list(split)
    2.写入时,将list转换为字符串写入(join)

    #读取file
    def Read_File(filename):
        l=[]
        with open(filename) as file:
            for line in file:
                #将txt的内容存入list中 并进行拆分 此时每个元素为列表
                l.append(line.strip('\n').split())          
        return l
    
    #写入file
    def Write_File(filename,l):
        #将list中的元素转换为字符串类型即 ["a","b","c"]->"abc"
        for i,value in enumerate(l):
            l[i]=' '.join(l[i])
        
        #将所有字符串写入文件中
        with open(filename,'w') as file:
            for line in l:
                file.write(line+'\n')
    
    展开全文
  • py-文件读写

    2018-08-20 16:14:41
                                在Python中,文件读写是通过open()函数打开的文件对象完成的。使用with语句操作文件IO是个好习惯。 

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    在Python中,文件读写是通过open()函数打开的文件对象完成的。使用with语句操作文件IO是个好习惯。 

    展开全文
  • Python 从 mat 文件读写 到 h5py 文件包

    万次阅读 2015-07-27 20:47:53
    python在读写matlab文件时常用到scipy.io文件,但,针对大文件(有网友睁着直径为8848米的小眼睛说的大小的分界点在2GB)以及存储版本在“matlab-v7.3”以上的文件就拙计了,这里分享一种刚刚学到处理方式,用h5py...

    【摘要】

     

    python在读写matlab文件时常用到scipy.io文件,但,针对大文件(有网友睁着直径为8848米的小眼睛说的大小的分界点在2GB)以及存储版本在“matlab-v7.3”以上的文件就拙计了,这里分享一种刚刚学到处理方式,用h5py模块,详细介绍以及Python源码详见本文。

    【正文】

     

    1、如果你的matlab的版本比较旧,保存的.mat 格式为‘-v7.3’以前的版本,可以采用:scipy.io即可。假如有一个name_box.mat,其中,box: {1x29992 cell}和name: {1x29992 cell}。我们想要读取其中的box的内容,源码如下:

     

     

    import scipy.io as sio
    boxes = sio.loadmat(’name_box.mat‘)['box'].ravel()

     

    这样boxes就是一个list,可以采用boxes[i]显示每个array的内容了,boxes.shape[0]为cell的个数

    2、如果你的matlab的版本比较新,保存的.mat格式为‘-v7.3’的版本,由于scipy.io不支持,所以要采用hdf5,arr.mat是一个m*n的矩阵文件,代码准备先对arr读入,再对 TrainSet_rotate.h5文件实现写入操作,源码如下:

     

    import h5py
    import numpy as np
    
    file = h5py.File('F:\\wfpdm\\20150702_2105\\arr.mat','r')
    arr = file['arr'][:]
    
    # h5py 用于文件读写 详细用例
    data = np.array( [222,333,444] )
    label = np.array( [0,1,0] )
    img_num = np.array( [0,1,2] )
    # 创建HDF5文件
    file = h5py.File('TrainSet_rotate.h5','w')
    # 写入
    file.create_dataset('train_set_x', data = data)
    file.create_dataset('train_set_y', data = label)
    file.create_dataset('train_set_num',data = img_num)
    file.close()
    
    # 读方式打开文件
    file=h5py.File('TrainSet_rotate.h5','r')
    # 尽管后面有 '[:]', 但是矩阵怎么进去的就是怎么出来的,不会被拉长(matlab后遗症)
    train_set_data = file['train_set_x'][:]
    train_set_y = file['train_set_y'][:]
    train_set_img_num = file['train_set_num'][:]
    file.close()

     

     

    展开全文
  • 最近在学习 py3 的爬虫时,遇到了一个编码的问题,在抓取页面的 html 代码进行存储时: with open(filename,'w') as f: f.write(html) 出现了错误,错误详情如下: UnicodeEncodeError: 'gbk' codec can't ...

    错误描述

    最近在学习 py3 的爬虫时,遇到了一个编码的问题,在抓取页面的 html 代码进行存储时:

    with open(filename,'w') as f:
        f.write(html)

    出现了错误,错误详情如下:

    UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f434' in position xxxxxx: illegal multibyte sequence


    不是原因的原因

    搜索的很多资料都提示使用各种 encode() decode() 和 'utf-8' 'gbk' 之类的处理方法:

    • encode()转化之后,得到的是byte字节流,用于传输等途径的使用。
    • decode()转化相应的到的就是字符串了。
    • 在这里程序是要将 网络数据流 (byte) 写入到文件中 (str) ,那么我们需要做的就是 byte —— decode() ——>str 的一个过程
    • 在 windows 下,新文件默认的编码是 gbk 编码,所以 python 解释器,就将我们的 unicode 编码内容,当做 gbk 编码进行处理。(在我的环境下,使用  print(chardet.detect(html))  看到的是 'Windows-1254’    ^(* ̄(oo) ̄)^  )

    然后就报出了这个错误 = =


    解决方法

    就是指定要写入的文件的编码方式,即通过我想要的utf-8打开并写入

    f = open("out.html","w",encoding='utf-8')


    参考资料

    https://www.cnblogs.com/themost/p/6603409.html

    https://blog.csdn.net/chixujohnny/article/details/51782826

    https://www.jianshu.com/p/6cbb2b14cda9

     


     

    展开全文
  • h5文件格式,HDF 的版本 5(HDF 版本 5不与 HDF 版本 4 及早期版本兼容).HDF是什么呢?就是Hierarchical Data Format,可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输,同时还有...
  • ex16.py 读写文件

    2018-05-04 22:01:57
    # 本例旨在只做一个简单的文本编辑器,运行这个程序需要输入一个你想创建的文件名,无所谓存在与否,比如:python ex16.py test.txt from sys import argv # 常规操作调用 script, filename = argv # 注意这个...
  • python 读写h5py文件(转载)

    千次阅读 2019-01-23 15:19:44
    原文链接,大家还是看原文吧。(仅供个人资料保存,不喜勿喷) ... We first load the numpy and h5py modules   import numpy as np import h5py Now mock up some simple dummy data to save to our fil...
  • 读写中文文件时,不需要考虑编码的情况:# coding=utf-8SRC_PATH = './src.txt' DST_PATH = './dst.txt'src_file = open(SRC_PATH, 'r') dst_file = open(DST_PATH, 'w') for line in src_file.readlines(): dst_...
  • Python基础-txt文件读写-txt_read_write.py 运行该程序时,需准备两个txt文件,放在该模块文件相同路径下,这两个txt文件名为pi_digits.txt和pi_million_digits.txt,可从 ... # ~ coding=GB
  • 读写中文文件时,不需要考虑编码的情况。此时虽然可以正常从文件中读取中文,也可以正常地将中文写入文件中,但是无法正常打印中文字段到屏幕上:# coding=utf-8SRC_PATH = './src.txt'DST_PATH = './dst.txt'src_...
  • 读写文件ex15.py

    2019-09-17 22:09:47
    ex15.py from sys import argv script,file_name = argv with open(file_name, mode='r') as f: txt = f.read() print "Here's your file %r:"%file_n...
  • 写了一个py文件如下,想通过引入这个包实现一键读/写,通过创建带默认值(工作簿1,Sheet1,A1)地址的实例,不必每次都输入地址那么麻烦。当然也可以通过修改属性的方式对位置进行修改。 xlwplus.py import xlwings...
  • 简单python读取ini文件的例子,初学的可以参考下。本程序为可以执行的源程序,需要的话自己写成一个类方便调用。
  • Py创建文件夹,文件读写excel

    千次阅读 2018-09-23 21:30:33
    OS模块:创建文件夹,子文件夹,删除文件夹,创建txt文件 import os os.mkdir(r'C:\Users\leilxu\Desktop\t2') os.makedirs(r'C:\Users\leilxu\Desktop\tt\test\ss') with open(r'C:\Users\leilxu\Desktop\new...
  • 文件读写

    2018-05-19 22:19:00
    一、文件打开open  文件打开针对当前的工作目录。  可以使用os.chdir() 来改变工作目录 1.1 open的两种方式  1.手动挡,需要手动关闭 f = open('1.py', 'r') print(f.read()) f.close()  2.自动挡,...
  • 6、输入和输出、序列化和反序列化、文件读写操作.py “”""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Python3 输入和输出 ''' 输出控制台信息 格式化信息:repr str ''' s = '...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 723
精华内容 289
关键字:

py文件读写