精华内容
下载资源
问答
  • 2021-11-16 15:42:32

    前言

            读取txt文件,重写里面某个key值,然后覆盖写入文件。
            如果覆盖写入失败,则回滚值未修改前的代码,避免错误写入下次运行报错

            这段代码,其实就是模仿SpringBoot实现Mysql的事务管理通过@Transactional注解的方式 ,如果程序报错就自动回滚未插入前的数据。防止后台报错的时候sql被插入了。

    #!/usr/bin/env python
    # -*- coding=utf-8 -*-
    __author__ = 'Benjamin'
    __CreateAt__ = '2021/11/15-15:15'
    
    
    import json
    
    
    def writeRpcInfoConfig(RpcKey,RpcValue):
    
        fileName = "../config/RpcInfoConfig.txt"
        # fileName = "RpcInfoConfig.txt"
    
        f = open(fileName, 'r',encoding="utf-8")
        f_data = f.read()
        f.close()
    
        f_dict = json.loads(f_data)
        f_dict_copy = f_dict.copy()
    
        RpcKeyValue = f_dict.get(RpcKey,None)
        if RpcKeyValue:
            # 修改,字段新增值
            # 字典合并
            RpcKeyValue.update(RpcValue)
    
        else:
            # 新增Key,并添加值
            f_dict[RpcKey] = RpcValue
    
        try:
            f = open(fileName, 'w')
            f.write(json.dumps(f_dict))
            f.close()
            print("新增成功")
        except:
            f = open(fileName, 'w')
            f.write(json.dumps(f_dict_copy))
            f.close()
            print("新增失败,回滚未修改前")
    
    if __name__ == "__main__":
        print(writeRpcInfoConfig("test3.rpc",{"testKey":"testValue"}))
    
    
    

    更多相关内容
  • 下面小编就为大家分享一篇python向已存在的excel中新增表,不覆盖原数据的实例,具有很好超参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • #不覆盖的方法,'a'代表直接add输出在文件末尾 i=1 while i<100: doc = open('testoutput.txt', 'a') print("这是第%d次输入"%(i),file=doc) i=i+1 doc.close() testoutput.txt文件里面的内容如下,如果要...

    不覆盖的方法’a’

    #不覆盖的方法,'a'代表直接add输出在文件末尾
    i=1
    while i<100:
        doc = open('testoutput.txt', 'a')
        print("这是第%d次输入"%(i),file=doc)
        i=i+1
        doc.close()
    

    testoutput.txt文件里面的内容如下,如果要直接打开一个textoutput.txt而不输入完整路径,你需要保证该txt文件位于同一个子目录下

    这是第1次输入
    这是第1次输入
    这是第2次输入
    这是第3次输入
    这是第4次输入
    这是第5次输入
    这是第6次输入
    这是第7次输入
    这是第8次输入
    这是第9次输入
    这是第10次输入
    这是第11次输入
    .....................
    

    覆盖的方法’w’

    #覆盖的方法,'w'代表直接write输出在文件末尾
    i=1
    while i<100:
        doc = open('testoutput.txt', 'w')
        print("这是第%d次输入"%(i),file=doc)
        i=i+1
        doc.close()
    

    输出:

    这是第99次输入
    

    哦吼,是不是很简单!

    展开全文
  • HIVE 导入导出文件

    千次阅读 2022-04-11 19:38:21
    HIVE 导入导出文件导入文件导出文件表中的数据到本地文件表中数据到 HDFS 参考: HIVE 导出文件 导入文件 导出文件 表中的数据到本地文件 其实在实际开发场景,一些关键性的数据可能还是需要我们导出来,然后下发给...

    参考:

    HIVE 导出文件

    导入文件

    本地文件系统到HIVE表

    把本地文件系统中的数据导入到 HIVE 表中,我们先来看下表结构

    CREATE TABLE IF NOT EXISTS stu_info
    (
        stu_id      string    COMMENT '学生ID'
       ,stu_name    string    COMMENT '学生姓名'
       ,stu_age     string    COMMENT '学生年龄'
       ,stu_addr    string    COMMENT '学生地址'
    )
    COMMENT '学生信息表'
    PARTITIONED BY (ds string)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '\t'
    STORED AS textfile;
    

    将本地文件加载到表中,文件的分隔符必须是 \t

    -- 格式
    LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
    
    -- 导入本地文件
    LOAD DATA LOCAL INPATH '/opt/data/student.txt' OVERWRITE INTO TABLE stu_info PARTITION (ds = '20220401');
    
    -- 导入本地文件夹
    LOAD DATA LOCAL INPATH '/opt/stu' OVERWRITE INTO TABLE stu_info PARTITION (ds = '20220402');
    

    在这里插入图片描述
    说明:HIVE 3.0 以下的版本只有 textfile 格式的表支持导入数据,其他格式需要通过格式为 textfile 的中间表导入数据

    HDFS到HIVE表

    和本地文件系统到 HIVE 表的操作类似,只需要把 LOCAL去掉就可以了,我们试下

    先把文件上传到 HDFS

    hdfs dfs -put /opt/data/student.txt /user/hive/temp
    

    导入HDFS的文件到 stu_info 的分区 20220402

    LOAD DATA INPATH '/user/hive/temp/student.txt' OVERWRITE INTO TABLE stu_info PARTITION (ds = '20220402');
    

    在这里插入图片描述

    把其它表的查询结果插入到指定表中

    这种方式在开发中最常用,示例如下:

    INSERT OVERWRITE TABLE stu_info PARTITION (ds = '20220403')
    SELECT   user_id
            ,user_name
            ,user_age
            ,user_addr
    FROM cust_info
    ;
    

    在这里插入图片描述

    导出文件

    表中的数据到本地文件(HIVE)

    其实在实际开发场景,一些关键性的数据可能还是需要我们导出来,然后下发给业务,所以此时就需要一些导出数据的操作,需要注意以下几点:

    1. 文件夹路径的文件夹应该是一个空文件夹,防止原数据被覆盖
    2. 如果使用了 LOCAL 关键字,HIVE 会把数据写入到本地文件系统中
    3. 数据会序列化到本地文件中,字段的分隔符默认为 ^A,行的分隔符默认为新的一行,如果字段不是基础类型,HIVE 会把这些字段使用 JSON 进行序列话
    

    如图所示,我们需要把该表中的数据导出来

    在这里插入图片描述

    -- 导出数据的格式
    INSERT OVERWRITE [LOCAL] DIRECTORY directory1
      [ROW FORMAT row_format] [STORED AS file_format]
      SELECT ... FROM ...
    

    示例

    -- 将表的数据写入到 '/opt/data/student' 文件夹 ,字段分隔符为 '\t'
    INSERT OVERWRITE LOCAL DIRECTORY '/opt/data/student' 
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    STORED AS textfile
    SELECT user_id, user_name, user_age, user_addr
    FROM cust_info
    ;
    

    表中的数据到本地文件(bash)

    还有一种方法可以把文件直接导出到本地,并且可以文件命名,通过 HIVE 客户端命令可以实现

    # 保存查询结果到 student.txt 文件中
    hive -e "SELECT user_id, user_name, user_age, user_addr FROM cust_info" > /opt/data/student.txt
    

    表中数据到 HDFS

    这里的操作和 [表中数据到本地文件] 类似,只是需要把 LOCAL 去掉,即可

    示例:把 cust_info 中的数据导入到 /user/hive/temp/student

    INSERT OVERWRITE DIRECTORY '/user/hive/temp/student' 
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    STORED AS textfile
    SELECT user_id, user_name, user_age, user_addr
    FROM cust_info
    ;
    

    在这里插入图片描述
    查看 HDFS 文件目录中的文件

    在这里插入图片描述

    展开全文
  • 如何用JAVA实现文件覆盖

    千次阅读 2021-03-03 12:28:55
    其中“覆盖”是指清除原文件的内容,写入新的内容,默认采用该种形式写文件,“追加”是指在已有文件的末尾写入内容,保留原来的文件内容,例如写日志文件时,一般采用追加。在实际使用时可以根据需要采用适合的形式...

    如何用JAVA实现文件的覆盖

    如何用JAVA实现文件的覆盖

    如何用JAVA实现文件的覆盖

    在实际写入文件时,有两种写入文件的方式:覆盖和追加。其中“覆盖”是指清除原文件的内容,写入新的内容,默认采用该种形式写文件,“追加”是指在已有文件的末尾写入内容,保留原来的文件内容,例如写日志文件时,一般采用追加。在实际使用时可以根据需要采用适合的形式,可以使用: public FileOutputStream(String name, boolean append) throws FileNotFoundException 只需要使用该构造方法在构造FileOutputStream对象时,将第二个参数append的值设置为true即可。

    try {

    BufferedWriter out = new BufferedWriter(new FileWriter("outfilename"));

    out.write("aString");

    out.close();

    } catch (IOException e) {

    }

    这种情况就是覆盖的

    try {

    BufferedWriter out = new BufferedWriter(new FileWriter("filename", true));

    out.write("aString");

    out.close();

    } catch (IOException e) {

    }

    这种情况是添加

    【转】BufferedOutputStream,FileOutputStream,FileWriter及BufferedWriter比较(转)

    比较一下java写文本文件文件的性能

    最近对以前开发的一个通用数据迁移的软件进行优化。除了用JDK5.0的多线程技术进行的改进之外,也比较了一下java写文件的性能。

    在java写文件中, 通常会使用FileOutputStream和FileWriter,FileWriter只能写文本文件。FileOutputStream也经常结合 BufferedOutputStream。因为实际应用中写文本文件的情况占了大多数。所以下面测试用不同的方式生成一个相同行数、大小相同的文件的三 种不同方式。

    另外:BufferedWriter操作数据性能比前三者更强。

    importjava.io.File;

    importjava.io.FileOutputStream;

    importjava.io.*;

    publicclassFileTest {

    publicFileTest() {

    }

    publicstaticvoidmain(String[] args) {

    FileOutputStream out =null;

    FileOutputStream outSTr =null;

    BufferedOutputStream Buff =null;

    FileWriter fw =null;

    intcount = 1000;// 写文件行数

    try{

    out =newFileOutputStream(newFile("C:/add.txt"));

    longbegin = System.currentTimeMillis();

    for(inti = 0; i 

    out.write("测试java 文件操作\r\n".getBytes());

    }

    out.close();

    longend = System.currentTimeMillis();

    System.out.println("FileOutputStream执行耗时:"+ (end - begin) +" 豪秒");

    outSTr =newFileOutputStream(newFile("C:/add0.txt"));

    Buff =newBufferedOutputStream(outSTr);

    longbegin0 = System.currentTimeMillis();

    for(inti = 0; i 

    Buff.write("测试java 文件操作\r\n".getBytes());

    }

    Buff.flush();

    Buff.close();

    longend0 = System.currentTimeMillis();

    System.out.println("BufferedOutputStream执行耗时:"+ (end0 - begin0)

    +" 豪秒");

    fw =newFileWriter("C:/add2.txt");

    longbegin3 = System.currentTimeMillis();

    for(inti = 0; i 

    fw.write("测试java 文件操作\r\n");

    }

    fw.close();

    longend3 = System.currentTimeMillis();

    System.out.println("FileWriter执行耗时:"+ (end3 - begin3) +" 豪秒");

    }catch(Exception e) {

    e.printStackTrace();

    }finally{

    try{

    fw.close();

    Buff.close();

    outSTr.close();

    out.close();

    }catch(Exception e) {

    e.printStackTrace();

    }}}}

    以下结果经过多次执行,取常出现的数据,由于只是简单比较,不做详细统计。

    1.当count=1000的,即写文件1000行的时候,写出的文件大小为18.5KB:

    FileOutputStream执行耗时:46 豪秒

    BufferedOutputStream执行耗时:31 豪秒

    FileWriter执行耗时:15 豪秒

    2.当count=10000的,即写文件10000行的时候,写出的文件大小为185KB:

    FileOutputStream执行耗时:188 豪秒

    BufferedOutputStream执行耗时:32 豪秒

    FileWriter执行耗时:16 豪秒

    3.当count=100000的,即写文件100000行的时候,写出的文件大小为1856KB:

    FileOutputStream执行耗时:1266 豪秒

    BufferedOutputStream执行耗时:125 豪秒

    FileWriter执行耗时:93 豪秒

    4.当count=1000000的,即写文件1000000行的时候,写出的文件大小为18555KB:

    FileOutputStream执行耗时:12063 豪秒

    BufferedOutputStream执行耗时:1484 豪秒

    FileWriter执行耗时:969 豪秒

    由以上数据可以看到,如果不用缓冲流BufferedOutputStream,FileOutputStream写文件的鲁棒性是很不好的。当写1000000行的文件的时候,FileOutputStream比FileWriter要慢11094毫秒(11秒),BufferedOutputStream比FileWriter慢515毫秒。     不要小看这几秒的时间。当操作的数据量很大的时候,这点性能的差距就会很大了。在通用数据迁移工具导出数据库2千万条记录生成sql脚本文件的时候,性能性能相差10分钟以上。     下次有时间再写单线程和多线程对性能的影响。

    展开全文
  • 记录在数据文件中 LOCAL MPP模式下登录使用MPP_LOCAL方式(N) HELP 打印帮助信息 (2)导出命令实例 导出数据库的所有对象(FULL=Y),导出文件为 dexp01.dmp,导出日志为 dexp01.log,导出文件和日志文件都存放在/...
  • Android中操作Excel文件导出报表时主要采用开源库jxl,最早...2、jxl不支持直接修改excel文件,但可通过复制新文件覆盖原文件的方式来间接修改。 3、jxl只能识别PNG格式的图片,不能识别其他格式的图片。 上面可以看出
  • matlab导出csv文件多种方法实现

    万次阅读 多人点赞 2020-04-14 20:48:33
    matlab导出csv文件多种方法实现 觉得有用的话,欢迎一起讨论相互学习~ 作为一名python 粉丝,csv是我最喜欢的文件格式。那么 如何将matlab中的变量保存为csv? 示例 有一个51*2的矩阵,我们将其列表头分别记为Obj...
  • ,刚开始我也是用的是window.location,但是当文件比较大的时候,速度就很慢了,并且对前端来说太友好,可能会重复点击下载按钮。增加后台的压力。要是可以监听下载事件就好了,当用户点击下载之后,给与友好的...
  • 使用Java写文件不覆盖原有内容

    千次阅读 2018-12-14 15:14:44
    FileOutputStream 的构造函数,第二个参数表示是否在文件原内容上追加,默认是否,会把原文件的内容直接覆盖。 设置为 true 的话,输出流写文件的时候,会在原文件的内容基础上进行追加。  
  • 小白最近在工作中遇到,从hive表中向服务器导出txt文档的问题,之前没有注意到一个问题: ...每次的csv文件都是覆盖上一次的结果 file_path="/home/chen" file_name_t="test.csv" hive -e "set hive.re...
  • 看到这样的环境首先想法是通过phpmyadmin导入导出,但数据库服务器无web环境,另外数据库文件大约300M,仅靠phpmyadmin无法导入。 下来准备停止mysql,打包数据库目录,然后覆盖的新服务器的数据库目录下,但鲤鱼...
  • ps动作储存覆盖原文件的原因

    千次阅读 2017-03-25 23:50:54
    ps动作储存覆盖原文件,导致不能正常批量处理 解决办法: 将文件名改成:YXQ_5141.JPG 分析: 1、有可能是文件名称过长 2、有可能是名称中有特殊的标点符号 总之是PS软件对各种特殊的情况处理并不能...
  • @Override public void writeRecordsToExcel(@NotBlank String filePath, @NotNull List<RecordExtExcel> recordExtExcelList) throws IOException { File file = new File(filePath); ...
  • vue项目前端导出word文件(bug解决)

    千次阅读 2020-12-29 10:48:55
    摘要:之前项目中导出价格表是由后端实现,前端只需要调用接口下载word即可,后来业务改变比较大,word模版需要一直改动,后端改起来相对麻烦,后来直接前端自己定义模版,实现下载word文档。一、需要安装的依赖1、...
  • 如何将matlab中矩阵导出到txt文件

    千次阅读 2021-04-18 06:11:21
    通过连接Excel和Matlab,用户可以在Excel工作表空间和宏编程工具中使用Matlab的数值计算,图形处理等功能,需要脱离Excel环境。同时由ExcelLink来保证两个工作环境中的数据交换和同步更新。 1. ExcelLink的安装...
  • mysql导入数据覆盖原数据?

    千次阅读 2021-01-18 22:12:34
    我来回答吧,现在找到方法了。1.首先导出时可以只导出创建表结构的语句,注意选项-d,表示只导出表结构mysqldump -uroot -B 库名 --tables 表名 -d --master-data=2 --force...然后再按月份导出数据文件,注意选项-t...
  • 后经过几次测试,发现copy run star、copy star run实际上的效果有很大的差别,测试结果: 1: copy running-config startup-config实际上是“文件的完全替换”,效果是先从nvram中先把配置文件startup-...
  • Apache POI项目是用于基于Microsoft的OLE 2复合文档格式开发文件格式的纯Java端口的主项目。 本章主要使用excel相关操作: HSSF是对Microsoft Excel 97(-2003)文件格式(BIFF8)操作的纯Java API。 XSSF是...
  • try { //true不覆盖已有内容 fos = new FileOutputStream(fileFullPath, true); //写入 fos.write(content.getBytes()); // 写入一个换行 fos.write("\r\n".getBytes()); } catch (IOException e) { e....
  • Matlab文件和数据的导入与导出

    万次阅读 多人点赞 2017-06-01 16:20:46
    Matlab文件和数据的导入与导出 本文来源于网上 在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件。MATLAB使用多种格式打开和保存数据。本章将要介绍MATLAB中文件的读写和数据的导入导出...
  • 使用openyxl库向excel表格的sheet页面添加数据,覆盖原数据,改变原excel其他的sheet页面 import pandas as pd from openpyxl import load_workbook def write_excel(date1, date2): book = load_workbook(r'C:...
  • 从Tif文件转为shp文件(ArcMap,代码)利用ArcMap来进行转换,以...在选择的文件夹下会生成如下文件 第二步:属性归并查看tif图和生成的shp图的属性表。下方左侧为tif图的属性表,右侧为生成的shp图的属性表 尚未...
  • linux下导入.dmp文件

    千次阅读 2021-05-09 03:22:35
    linux下导入.dmp文件(2012-10-12 14:15:51)标签:it[oracle@localhost script]$ impImport: Release 8.1.7.4.0 - Production on Mon Feb 9 13:59:022004(c) Copyright 2000 Oracle Corporation. All rights reserved...
  • 下载文件时 文件名相同会被覆盖:以下是两种重命名文件的方法,妈蛋的函数写错了,让我整了一早上:第一种 利用strcpy函数,随机数参数化文件名会使文件每次生成的文件名 随机带上不同的数字strcpy(filepath,lr_eval...
  • 总结 这篇文章基于小小明大佬开发的漫游者工具,顺利完成了C站上发布的历史文章批量导出备份,而且还实现了将富文本HTML格式文件顺利转换为Markdown格式文件,内容几乎失真,可以同步到多个其他的自媒体平台,...
  • 安装说明:安装后将“补丁”文件夹内的“ps2viewer.exe”复制到C:\Program Files\ccyt\Ps2Viewer目录下,覆盖原文件即是正式版。本软件可以打开扩展名为.mps/.ps2/.s92/.s72/.s2格式的文件,显示字体可以在方正字库...
  • StringBuffer str=new StringBuffer(names[j]); File file = new File("C:/"+str.insert(16, "SD")); if(file.exists()) { file.delete(); file.createNewFile();
  • 作者:Mike Driscoll ;翻译:季洋;校对:丁楠雅本文约4000字,建议阅读10分钟。本文介绍了在提取出想要的数据之后,如何将数据导出成其他格式的方法。有很多时...
  • 以前用Excel2003做了些宏,在网上还有不少粉丝,因一些功能在Excel2010中无法使用,故重新整理,欢迎指正; 本Excel中的宏在Excel2010中测试表现...3.如果文件夹中已有相同名字的文件,则后面的文件覆盖原来的文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,882
精华内容 10,352
关键字:

导出文件不能覆盖原文件