精华内容
下载资源
问答
  • 2020-05-24 21:32:04

    Qt写文件时如何在原内容的基础上添加新内容

    最近用out<<str 向文件里写东西,想实现在文件中添加新内容,可是原内容总是被覆盖(没了)。copy了网上几种方法都不管用,结果自己尝试着尝试着突然发现一个很简单实用的方法,可以防止在写内容时,原内容被覆盖,代码段如下:`

                     QFile file(path);  //创建文件对象
                    
                    file.open(QIODevice::ReadWrite|QIODevice::Text);	//以读且写的方式打开
                                   
                    QTextCodec *codec=QTextCodec::codecForName("GBK");	 //防止乱码
                                     
                    QByteArray array=file.readAll();
                    			//读取原文件内容(必须先读出来,才不会被新内容## 标题覆盖掉)
    
                    QString str=newName;	//字符串,名字可变,这里只是举例
    
                    QTextStream out(&file);		//输入流
                    
                    out<<str<<"\n";			//写入内容
    
                    file.close();              //关闭文件流
    

    亲测可行,运行了很多次都得到了想要的结果。
    ps:虽然上面有些代码段看似无关,但如果删掉就会出现奇怪的错误,我也想不清为什么(欢迎dalao答疑)
    本人是Qt萌新,这也是我第一次发帖子,如有纰漏欢迎指正,如果能帮上各位,不胜荣幸~

    更多相关内容
  • 在对比4000+条数据然后要找出并标出相同的数字,找的眼睛也酸痛的时候,我想到了python,何不一试?正文:1....问题s:3.1 文件打开问题:我百度了这个结果:https://blog.csdn.net/larfqu/arti...

    在对比4000+条数据然后要找出并标出相同的数字,找的眼睛也酸痛的时候,我想到了python,何不一试?

    正文:

    1.安装:安装vs code&python(3.7.2)

    2.学习:百度了些我认为的干货:需要的关注“流浪人float”后对话框回复“资料”即可

    哦~~然后开始敲敲敲。。but

    3.问题s:

    3.1 文件打开问题:

    5d5268bc89ad

    我百度了这个结果:

    https://blog.csdn.net/larfqu/article/details/79101903

    摘录如下:

    报这个IO错误无非就是文件找不到。一共也就三种情况:

    第一:计算机是否存在这个文件,我相信大家基本不会犯这个错误

    第二:检查地址路径是否正确

    第三:最关键的一种:如果前面的你都检查,代码都一抹一样没有问题,那么我建议你去检查一下你的文件了

    后来我修改成了这样:

    5d5268bc89ad

    OK!

    3.2 越界问题:

    5d5268bc89ad

    5d5268bc89ad

    当我看到数字哗啦啦跳出来时,我的内心

    5d5268bc89ad

    5d5268bc89ad

    ????

    5d5268bc89ad

    嗯。。。超出边界了。。

    应该是最后一次now_row+1就指向空了

    解决方案:异常处理&测试

    异常处理:

    try:<语句>        #运行别的代码

    except <名字>:<语句>        #如果在try部份引发了'name'异常

    5d5268bc89ad

    测试:

    在最后两行放相同的数字看能否识别出:

    结果是可以的,ok!

    3.3 拷贝excel文件问题:

    需求是找出相同的数字然后把相同的标出来,现在找到了数据,只要标出来就好了,我的内心不禁一番惊喜,哈哈哈哈

    然后就读到了这些:

    使用xlrd读取文件,使用xlwt生成Excel文件(可以控制Excel中单元格的格式)。但是用xlrd读取excel是不能对其进行操作的;

    而xlwt生成excel文件是不能在已有的excel文件基础上进行修改的,如需要修改文件就要使用xluntils模块。pyExcelerator模块与xlwt类似,也可以用来生成excel文件。

    然后就遇到了这个问题:

    5d5268bc89ad

    翻遍了度娘 才在

    https://www.crifan.com/python_xlutils_copy_attributeerror_module_object_has_no_attribute_copy/

    的回复里找到了答案:

    5d5268bc89ad

    哇哦!连文档里都没有的东西,我愿意为这位网友献上我的膝盖

    5d5268bc89ad

    5d5268bc89ad

    结合两位大神的说法,我改成了这样:

    5d5268bc89ad

    OK!

    3.4 write使用问题:

    一般写入数据是这样的:

    5d5268bc89ad

    但我需要

    5d5268bc89ad

    5d5268bc89ad

    嗯。。照着写写

    5d5268bc89ad

    运行成功,但是再打开excel时没有任何变化?

    没 保 存!

    5d5268bc89ad

    data.save('C:\\Users\Freedom\Desktop\\1.xls')

    保存成同名文件可直接覆盖

    OK!

    4.代码:

    5d5268bc89ad

    欢迎留言说出你的想法

    展开全文
  • 网上很多都是创建新的excel文件,然后写入内容,这里是把csv文件中的相关数据解析出来,然后把数据填写到原有的模板中。【每次会先复制模板生成新文件,新文件名包含当前日期,然后把数据填写到新文件中】 csv文件 ...

    Background

    • 网上很多都是创建新的excel文件,然后写入内容,这里是把csv文件中的相关数据解析出来,然后把数据填写到原有的模板中。【每次会先复制模板生成新文件,新文件名包含当前日期,然后把数据填写到新文件中】
    • python提供了很多修改excel的模块,包括xlsxWriter、xlrd&xlwt、openPyXL、Microsoft Excel API、Pandas等;其他的不作介绍,这里使用的是OpenPyXL模块。
    • OpenPyXL:较好的支持对xlsx文件的修改,功能比较强大,适用于需要处理xlsx文件,需要修改xlsx文件中的值,最后生成xlsx。openpyxl(可读写excel表)专门处理Excel2007及以上版本产生的xlsx文件【不支持xls,但xls和xlsx之间转换容易】

    csv文件

    文件内容是从数据库中查出来的sql结果,共十组,第一组为模板中M列的数据(24小时单量),然后依次为10点,11点,12点,13点,14点,15点,16点,17点,18点。

     pro_com_code | create_sum | finish_sum 
    --------------+------------+------------
     11000000     |       2586 |       2096
     12000000     |        999 |        819
     13000000     |       3346 |       2642
     14000000     |       1007 |        671
     15000000     |       1165 |        861
     21000000     |       2452 |       2083
     21020000     |        714 |        602
     22000000     |        867 |        702
     23000000     |        935 |        762
     31000000     |       1367 |       1128
     32000000     |       6268 |       4945
     33000000     |       4960 |       3983
     33020000     |        689 |        579
     34000000     |       2032 |       1643
     35000000     |       1937 |       1434
     35020000     |        620 |        501
     36000000     |       2059 |       1597
     37000000     |       3255 |       2427
     37020000     |        753 |        645
     41000000     |       2141 |       1634
     42000000     |       2497 |       2052
     43000000     |       2353 |       1815
     44000000     |       7519 |       5874
     44030000     |       1609 |       1282
     45000000     |       1021 |        805
     46000000     |        333 |        248
     50000000     |       1419 |       1164
     51000000     |       3203 |       2509
     52000000     |       1655 |       1420
     53000000     |       1737 |       1077
     54000000     |        161 |         80
     61000000     |       1525 |       1175
     62000000     |        857 |        666
     63000000     |        341 |        294
     64000000     |        602 |        463
     65000000     |       2271 |       1945
    (36 rows)
    
     pro_com_code | create_sum | finish_sum 
    --------------+------------+------------
     11000000     |        233 |        158
     12000000     |         53 |         38
     13000000     |        288 |        209
     14000000     |         92 |         46
     15000000     |        103 |         65
     21000000     |        227 |        178
     21020000     |         46 |         40
     ........后面的省略
    

    模板文件

    在这里插入图片描述

    在这里插入图片描述

    源码

    import csv
    import shutil
    from openpyxl import load_workbook
    from time import strftime, localtime
    
    
    # 去除字符串中空格、Tab及回车的方法
    def strip_str(str_with_blank):
        return str_with_blank.replace(" ", "").replace("\t", "").strip()
    
    
    # 读取原始数据文件
    csv_file = open('F:/wlf/sql_output.csv', 'r')
    csv_data = csv.reader(csv_file)
    rows_raw = [row for row in csv_data]
    rows_deal = []
    
    # 去掉无用行和行里的空白
    for i in range(len(rows_raw)):
        rows = rows_raw[i]
        if len(rows) != 0:
            row_line = rows[0]
            if '0000' in row_line:
                rows_deal.append(strip_str(row_line))
    
    
    # 写入顺序[24小时单量,10点,11点,12点,13点,14点,15点,16点,17点,18点]
    # 写入模板列的顺序[M, D, E, F, G, H, I, J, K, L]
    cols_order_template = ['M', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
    
    # 原模板文件
    file_origin = 'F:/wlf/平台监控数据模板.xlsx'
    # 在相同路径下复制模板文件,生成的新文件名带日期,例如:平台监控数据-2020-10-23.xlsx
    now_date = strftime("%Y-%m-%d", localtime())
    file_now = 'F:/wlf/平台监控数据-%s.xlsx' % now_date
    shutil.copy(file_origin, file_now)
    
    # 获取模板 excel 的操作对象
    wb = load_workbook(filename=file_now)
    # 根据 Sheet1 这个名字来获取 Sheet1
    sheet1 = wb['Sheet1']
    
    # 这层循环遍历所有要写入数据的列
    for i in range(len(cols_order_template)):
    
        # 这层循环取出每列对应的数值
        data_col = []
        for j in range(i * 36, 35 * (i + 1) + i + 1):
            create_sum = rows_deal[j].split('|')[1]
            finish_sum = rows_deal[j].split('|')[2]
            data_col.append(create_sum)
            data_col.append(finish_sum)
    
        # 当 i 为 0 时,取出 M 列对应的数据,计算所有分公司 24 小时合计数量
        create_sum_all = []
        finish_sum_all = []
        if i == 0:
            # 奇数行为发起数量
            create_sum_all = data_col[::2]
            # 偶数行为完成数量
            finish_sum_all = data_col[1::2]
            # 计算总数
            total_create = 0
            total_finish = 0
            for ii in range(0, len(create_sum_all)):
                total_create += int(create_sum_all[ii])
                total_finish += int(finish_sum_all[ii])
            # 写入计算结果 D75 和 D76
            sheet1['D75'] = total_create
            sheet1['D76'] = total_finish
    
        # 这层循环写入每列的值【每个省份的发起量和完成量】 每一列都是从第 3 行到第 74 行
        for k in range(len(data_col)):
            index_cell = k + 3
            col_word = cols_order_template[i]
            cell_code = col_word + str(index_cell)
            sheet1[cell_code] = data_col[k]
    
    # 修改后保存 excel
    wb.save(file_now)
    print('success')
    
    展开全文
  • 注:openpyxl模块既可以进行“读”操作,也可以进行“写”操作,还可以对已经存在的文件修改。 1、首先本地已存在一个Excel表格(.xlsx格式),假设表格内容如下: 2、引入openpyxl模块(没有的话需要使用pip命令...

    注:openpyxl模块既可以进行“读”操作,也可以进行“写”操作,还可以对已经存在的文件做修改。

    1、首先本地已存在一个Excel表格(.xlsx格式),假设表格内容如下:
    在这里插入图片描述
    2、引入openpyxl模块(没有的话需要使用pip命令下载安装该模块)
    在这里插入图片描述
    3、获取Excel文件对象
    在这里插入图片描述
    4、获取Sheet工作表对象,如这里获取表“学生信息”
    在这里插入图片描述
    5、插入列,如这里在第一列前面插入一列,作为后面的“学号”列。
    在这里插入图片描述
    保存Excel文件:
    在这里插入图片描述
    运行后,可看到对于路径下生成了文件“练习openpyxl模块修改.xlsx”,打开文件如下图:
    在这里插入图片描述
    6、对新插入的一列添加“学号”数据
    在这里插入图片描述
    运行后,可看到对于路径下生成了文件“练习openpyxl模块修改.xlsx”,打开文件如下图:
    在这里插入图片描述
    7、删除列,如这里删除新增的“学号”列
    在这里插入图片描述
    运行后,可看到对于路径下生成了文件“练习openpyxl模块修改.xlsx”,打开文件如下图:
    在这里插入图片描述
    8、增加行,如这里在第2行位置增加一行
    在这里插入图片描述
    运行后,可看到对于路径下生成了文件“练习openpyxl模块修改.xlsx”,打开文件如下图:
    在这里插入图片描述
    9、删除行,如这里删除新增的“第2行”
    在这里插入图片描述
    运行后,可看到对于路径下生成了文件“练习openpyxl模块修改.xlsx”,打开文件如下图:
    在这里插入图片描述
    10、修改第1行的数据
    在这里插入图片描述
    运行后,可看到对于路径下生成了文件“练习openpyxl模块修改.xlsx”,打开文件如下图:
    在这里插入图片描述
    注:对列可同样处理,将原先的内容覆盖掉。

    11、修改特定单元格数据
    在这里插入图片描述
    运行后,可看到对于路径下生成了文件“练习openpyxl模块修改.xlsx”,打开文件如下图:
    在这里插入图片描述
    12、sheet.append()方法,可以用来添加行
    在这里插入图片描述
    运行后,可看到对于路径下生成了文件“练习openpyxl模块修改.xlsx”,打开文件如下图:
    在这里插入图片描述
    -----end-----

    展开全文
  • 前端静态资源版本更新与缓存之——通过gulp 在原html文件上自动化添加js、css版本号...-附件资源
  • 用Java修改现有文件内容

    千次阅读 2021-02-27 10:04:13
    小编典典如对类似问题的公认答案中所建议:同时以写入模式打开一个临时文件,对于每一行,读取它,必要时进行修改,然后写入该临时文件。最后,删除原始文件并重命名临时文件。根据您的实现,类似于以下内容:import...
  • 1、我想替换文件中的 11为 12,可以使用 sed 's/11/12/g' xxx.log这种方式,其实并没有修改build.xml文件的内容。... xxx.log.tmp这样,xxx.log.tmp文件就是修改后的文件.如果无误,那么就可以用mv xxx.log.tm...
  • 我需要就地修改文件的特定内容。我不是,而是,想要创建一个新文件并重写旧文件。而且文件很小,每个最大...参考方案Java允许随机访问和写入磁盘文件。但是,写入文件中间只能覆盖字节-即用其他字节替换特定字节...
  • @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府文章目录1 替换文件中的一行1.1 修改文件① 要把文件中的一行Server=192.168.22.22中的IP地址替换掉,因此把整行替换。data = ''with open('zhai.conf...
  • 2. 二进制文件用fstream读写时既可以输入又可以输出,此模式下可以实现只修改文件部分内容 例如,我创建了含有100个数的二进制文件data_unsorted.dat,生成结果如下: 写入如下代码(ios::in不能少) file....
  • // 将写文件指针移到文件尾。 randomFile.seek(fileLength); File fileRead = new File("d:\\read.txt"); // 定义一个字节数组 相当于缓存 一点一点读进来 一下都进来 内存放不下 byte[] bytes = new byte[1024]; ...
  • 如何修改.json文件的内容?

    万次阅读 2019-04-23 23:51:46
    标注小组将前几天收集得到的数据图片进行标注,在标注的时候是按日期进行区分的,由于之前没有跟产品组沟通好,造成后面不同日期下的文件名都重名了~~本来今天的任务是要将这些标注好的图片和相应的json文件合并到一...
  • 在做检测时,下载的数据集中Annotations里的.xml文件的“path”值需要修为自己的图片保存地址,如下...以python批量修改xml为参照,但该博客代码并未考虑同一文件夹下文件名长度不同的情况,我在原代码的基础并作了修
  • POI对ecxl文件内容进行修改

    千次阅读 2018-02-07 17:41:54
    //此路径也可写修改前的路径,相当于在原来excel文档上修改 os.flush(); //将Excel写出 workbook.write(os); //关闭流 fileInput.close(); os.close(); } catch (IOException e) { e....
  • svn 文件夹修改文件流程

    千次阅读 2018-07-20 21:18:21
    1.新建文件夹  2 .进入文件夹 右击 选择 checkout 登录svn 检出根目录 3.选择svn 下载地址 存储位置   ​​​​​​​   4.修改前先update .   5.提交    ...
  • c++修改Json文件内容

    千次阅读 2021-01-18 22:30:07
    吐槽:在百度关于修改Json文件内容时看了几篇博客,无一例外文章都是雷同的,而且说的也不详细,没有详细的验证结果是否有问题就发了出来,这样无疑会给我们带来不必要的麻烦。 读取: 从文件中读取json数据是很容易...
  • 如题,python 修改txt文件中指定几行指定列的内容。如批量修改第一行到第三十行第六列的内容。
  •  eclipse修改文件可以正常提交,但是新增的文件没有显示在提交列表中,导致无法提交! 2.解决方案  选中要提交的文件--》右键--》Team--》提交  勾选这个选项即可。  意思是显示没有进行版本控制...
  • 此编译器是在编译原理书本的附录TINY经过老师要求修改的,包括将关键字增加到18个,添加识别WHILE循环等各个语句或表达式,修改了编译器所需的各个部分,...编译文件时注意修改MAIN函数的文件读取路径,暂时就这么多吧
  • 问题: 修改了文件夹的名称,在vscode提交git代码,发现无法把修改的文件名覆盖到远程 解决: 选中项目文件夹,git bash运行一下 git config core.ignorecase false ...运行完vscode就能看到修改文件
  • 文件批量改名5.24.rar

    2019-10-10 22:29:20
    在原文件前或后加上特定名称,可任意改扩展名。2.可在文件名前添加数字(数字可自动增加)。3,可以用Txt、word、excel、PPT文件的标题对文件改名,使文件名与标题一致,方便查找及管理。4、可任意替换文件名中字符...
  • 天蝎 ...权限管理工具基于冰蝎加密流量进行WebShell通信管理的原理,目前实现了jsp,aspx,php,asp端的常用操作功能,在原基础,优化了大文件上传下载,套接字代理的问题,修改了部分API接口代码。
  • # 参数1可修改 daLayer = dataSource.GetLayer( 0 ) layerDefinition = daLayer.GetLayerDefn() layer = dataSource.GetLayer() a = get_point_info() # (点名, 坐标) for i in range...
  • idea导入新maven项目后,修改maven的setting路径配置,不要用默认的 file=&gt;setting=&gt;搜索Maven 三个分别是maven安装路径,配置文件路径,本地Jar仓库路径 ...
  • 修改Hosts文件解决文件访问问题

    千次阅读 2021-11-22 16:39:41
    Hosts文件介绍,Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”。当我们在浏览器中打开一...我们修改Hosts文件,使我们不能访问...
  • -i 表示的是替换并直接修改文件;sed -i '1,1s/ssd/cd/g' test_file命令使用:sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./`作用:将当前目录(包括子目录)中所有txt文件中的yyyy字符串替换为xxxx字符...
  • 使用python打开和修改文件--open功能

    千次阅读 2021-08-10 17:40:14
    open function,将导入的文件生成文件对象(file object) file = open(filepath,mode) file = open(" file.name 要记得关闭file 一般使用with open as格式,因为这样在执行完代码之后会自动关闭file with open(file_...
  • 而是在原文件中追加了新的内容)

    千次阅读 2020-09-03 17:01:45
    在使用MyBatis Generator生成代码的过程中,曾经遇到一个坑,每次生成mapper.xml的时候并不是直接覆盖原文件,而是在原文件中追加了新的内容,导致运行项目出错,本文主要讲解如何解决这个问题。问题重现示例代码...
  • 文件文件名称重命名也就是修改文件名称?相信每个人都知道操作,最基本的操作技能,但是工作中可能遇到大量的文件需要重命名,如果掌握批量重命名的技巧,提高工作效率,解放双手,方法简单易懂,下面一起来看操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,812
精华内容 15,524
关键字:

如何在原文件上修改