代码混淆copy

Android进阶之混淆配置 1、proguardFiles会让sdk中配置的混淆文件不能在app中生效,sdk中配置consumerProguardFiles即可实现在app中生效。 debug{ consumerProguardFiles 'proguard-rules.pro' } 2、区别: ①proguardFiles是用于构建sdk的混淆规则;(即是:sdk单独先混淆) ②consumerProgua... 阅读详情
##########################基本混淆参数######################
# 代码混淆压缩比,在0~7之间,默认为5,一般不做修改
-optimizationpasses 5

# 混合时不使用大小写混合,混合后的类名为小写
-dontusemixedcaseclassnames

# 指定不去忽略非公共库的类
-dontskipnonpubliclibraryclasses

# 这句话能够使我们的项目混淆后产生映射文件
# 包含有类名->混淆后类名的映射关系
-verbose

# 指定不去忽略非公共库的类成员
-dontskipnonpubliclibraryclassmembers

# 不做预校验,preverify是proguard的四个步骤之一,Android不需要preverify,去掉这一步能够加快混淆速度。
-dontpreverify

# 保留Annotation不混淆
-keepattributes *Annotation*,InnerClasses

# 避免混淆泛型
-keepattributes Signature

#去除警告
-ignorewarnings

# 抛出异常时保留代码行号
-keepattributes SourceFile,LineNumberTable

# 指定混淆是采用的算法,后面的参数是一个过滤器
# 这个过滤器是谷歌推荐的算法,一般不做更改
-optimizations !code/simplification/cast,!field/*,!class/merging/*

####################################################################

# 保留我们使用的四大组件,自定义的Application等等这些类不被混淆
# 因为这些子类都有可能被外部调用
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Appliction
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.view.View
-keep public class com.android.vending.licensing.ILicensingService


# 保留support下的所有类及其内部类
-keep class android.support.** {*;}

# 保留继承的
-keep public class * extends android.support.v4.**
-keep public class * extends android.support.v7.**
-keep public class * extends android.support.annotation.**

# 保留R下面的资源
-keep class **.R$* {*;}

# 保留本地native方法不被混淆
-keepclasseswithmembernames class * {
    native <methods>;
}

# 保留在Activity中的方法参数是view的方法,
# 这样以来我们在layout中写的onClick就不会被影响
-keepclassmembers class * extends android.app.Activity{
    public void *(android.view.View);
}

# 保留枚举类不被混淆
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

# 保留我们自定义控件(继承自View)不被混淆
-keep public class * extends android.view.View{
    *** get*();
    void set*(***);
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

#webChromeClient
-keepclassmembers class * extends android.webkit.WebChromeClient {
    public void openFileChooser(...);
}

# 保留Parcelable序列化类不被混淆
-keep class * implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator *;
}

# 保留Serializable序列化的类不被混淆
-keepnames class * implements java.io.Serializable
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    !static !transient <fields>;
    !private <fields>;
    !private <methods>;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

# 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆
-keepclassmembers class * {
    void *(**On*Event);
    void *(**On*Listener);
}

# webView处理,项目中没有使用到webView忽略即可
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
    public *;
}
-keepclassmembers class * extends android.webkit.webViewClient {
    public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
    public boolean *(android.webkit.WebView, java.lang.String);
}
-keepclassmembers class * extends android.webkit.webViewClient {
    public void *(android.webkit.webView, jav.lang.String);
}

#MPAndroidChart
-keep class com.github.mikephil.charting.** { *; }

#android-gif-drawable
-keep public class pl.droidsonroids.gif.GifIOException{<init>(int);}
-keep class pl.droidsonroids.gif.GifInfoHandle{<init>(long,int,int,int);}

# EventBus
-keepattributes *Annotation*
-keepclassmembers class * {
    @org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }

# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
    <init>(java.lang.Throwable);
}


#Glide
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

# for DexGuard only
#-keep resourcexmlelements manifest/application/meta-data@value=GlideModule

#okhttp/OKGO
#-dontwarn okhttp3.**
#-dontwarn okio.**
#-keep class okio.**{*;}
#-dontwarn javax.annotation.**
#-dontwarn org.conscrypt.**
## A resource is loaded with a relative path so the package of this class must be preserved.
#-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-dontwarn okhttp3.**
-keep class okhttp3.**{*;}

#okio
-dontwarn okio.**
-keep class okio.**{*;}



# RxJava RxAndroid
-dontwarn sun.misc.**
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
    long producerIndex;
    long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode producerNode;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode consumerNode;
}
-keepclassmembers class rx.android.**{*;}

#播放GIF框架
-keep public class pl.droidsonroids.gif.GifIOException{<init>(int);}
-keep class pl.droidsonroids.gif.GifInfoHandle{<init>(long,int,int,int);}

# Gson
-keep class com.google.gson.stream.** { *; }
-keepattributes EnclosingMethod
-keep class org.xz_sale.entity.**{*;}
-keep class com.google.gson.** {*;}
-keep class com.google.**{*;}
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }
-keep class com.google.gson.examples.android.model.** { *; }

#解决沉浸式方案
 -keep class com.gyf.barlibrary.* {*;}

#butterknife
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * {
    @butterknife.* <fields>;
}
-keepclasseswithmembernames class * {
    @butterknife.* <methods>;
}

#不混淆加密工具类DESUtils
-keep class com.wanhe.eng100.listening.utils.DESUtils {*;}
-dontwarn com.wanhe.eng100.listening.utils.DESUtils

#不混淆javaBean
-keep class com.wanhe.eng100.listening.bean.** {*;}
-dontwarn com.wanhe.eng100.listening.bean.**



#第三方jar包jaudiotagger
-dontwarn org.jaudiotagger.**
-keep class org.jaudiotagger.** {*;}


# 支付宝
-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}
-keep class com.alipay.sdk.app.H5PayCallback {
    <fields>;
    <methods>;
}
-keep class com.alipay.android.phone.mrpc.core.** { *; }
-keep class com.alipay.apmobilesecuritysdk.** { *; }
-keep class com.alipay.mobile.framework.service.annotation.** { *; }
-keep class com.alipay.mobilesecuritysdk.face.** { *; }
-keep class com.alipay.tscenter.biz.rpc.** { *; }
-keep class org.json.alipay.** { *; }
-keep class com.alipay.tscenter.** { *; }
-keep class com.ta.utdid2.** { *;}
-keep class com.ut.device.** { *;}
# 微信支付
-dontwarn com.tencent.mm.**
-dontwarn com.tencent.wxop.stat.**
-keep class com.tencent.** { *;}

#友盟分享
-dontshrink
-dontoptimize
-dontwarn com.google.android.maps.**
-dontwarn android.webkit.WebView
-dontwarn com.umeng.**
-dontwarn com.tencent.weibo.sdk.**
-dontwarn com.facebook.**
-keep public class javax.**
-keep public class android.webkit.**
-dontwarn android.support.v4.**
-keep enum com.facebook.**
-keepattributes Exceptions,InnerClasses,Signature
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public interface com.facebook.**
-keep public interface com.tencent.**
-keep public interface com.umeng.socialize.**
-keep public interface com.umeng.socialize.sensor.**
-keep public interface com.umeng.scrshot.**
-keep public class com.umeng.socialize.* {*;}
-keep class com.facebook.**
-keep class com.facebook.** { *; }
-keep class com.umeng.scrshot.**
-keep public class com.tencent.** {*;}
-keep class com.umeng.socialize.sensor.**
-keep class com.umeng.socialize.handler.**
-keep class com.umeng.socialize.handler.*
-keep class com.umeng.weixin.handler.**
-keep class com.umeng.weixin.handler.*
-keep class com.umeng.qq.handler.**
-keep class com.umeng.qq.handler.*
-keep class UMMoreHandler{*;}
-keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}
-keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}
-keep class im.yixin.sdk.api.YXMessage {*;}
-keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}
-keep class com.tencent.mm.sdk.** {
   *;
}
-keep class com.tencent.mm.opensdk.** {
   *;
}
-keep class com.tencent.wxop.** {
   *;
}
-keep class com.tencent.mm.sdk.** {
   *;
}
-dontwarn twitter4j.**
-keep class twitter4j.** { *; }
-keep class com.tencent.** {*;}
-dontwarn com.tencent.**
-keep class com.kakao.** {*;}
-dontwarn com.kakao.**
-keep public class com.umeng.com.umeng.soexample.R$*{
    public static final int *;
}
-keep public class com.linkedin.android.mobilesdk.R$*{
    public static final int *;
}
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
-keep class com.tencent.open.TDialog$*
-keep class com.tencent.open.TDialog$* {*;}
-keep class com.tencent.open.PKDialog
-keep class com.tencent.open.PKDialog {*;}
-keep class com.tencent.open.PKDialog$*
-keep class com.tencent.open.PKDialog$* {*;}
-keep class com.umeng.socialize.impl.ImageImpl {*;}
-keep class com.sina.** {*;}
-dontwarn com.sina.**
-keep class  com.alipay.share.sdk.** {
   *;
}
-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}
-keep class com.linkedin.** { *; }
-keep class com.android.dingtalk.share.ddsharemodule.** { *; }
#避免泛型混淆
#-keepattributes Signature
#去掉混淆-dontshrink报错
-keep class * extends com.umeng.socialize.net.base.SocializeReseponse {
   *;
}

 

TTL转RS422(B)工业级转换模块设计:从原理到实战部署 在工业自动化与嵌入式系统中,串行通信是实现设备间数据交换的基础。其核心原理在于通过特定的电气标准与协议,将数据位序列化后进行传输。RS422作为一种差分平衡传输协议,相比常见的TTL电平,在抗共模干扰与远距离传输能力上具有显著的技术优势,这使其成为工业现场总线、楼宇自动化等对可靠性要求严苛场景的优选方案。要实现TTL设备与RS422网络的稳定互联,关键在于设计一个能够完成单端信号到差分信号高质量转换的硬件模块。这涉及到差分总线收发器芯片的选型、包含终端电阻与TVS二极管的保护电路设计,以及遵循差分走线规则的 阅读详情

相关推荐

告别VLC!用Python+OpenCV实时拉取RTSP监控流,并实现抽帧降低延迟(附完整代码)

本文介绍了一种基于Python和OpenCV的低延迟RTSP监控流处理方案,通过抽帧技术显著降低延迟并保持视频分析准确性。文章详细讲解了RTSP流处理的基础挑战、抽帧技术原理与实现,以及完整的低延迟处理方案,包括硬件加速配置和动态抽帧算法,帮助开发者优化监控视频流处理性能。

weixin_30333885的博客 272

ProGuard配置详解

ProGuard是一个开源的Java class文件缩小器、优化器、混淆器和预验证器。它通过删除未使用的类、字段、方法和属性,优化字节码指令,并重命名类、字段和方法,使反编译后的代码难以理解,从而提高应用的安全性。以下是对ProGuard配置文件的一些详细解释和常见配置项的说明。

彬_小彬的博客 3460

用Python实现一个猜密码的程序

我们用Python实现猜密码

sk6584631_sz的博客 1261

ProGuard 进阶系列(二)配置解析

书接上文,从开源库中把代码下载到本地后,就可以在 IDE 中进行运行了。从 main 方法入手,可以看到 ProGuard 执行的第一步就是去解析参数。本文的内容主要分析源码中我们配置的规则解析的实现。在上一篇文章末尾,在 IDE 中,添加了 @/Users/xxx/debug_proguard.pro 作为函数运行的入参,将配置文件的路径传递给 ProGuard 使用。先来看一下 Main 函数...

大罗说事 1262

报错:subprocess.CalledProcessError: Command ‘[‘where‘, ‘cl‘]‘ returned non-zero exit status 1.

右键此电脑--属性--高级系统设置--环境变量--系统变量--找到Path。Enterprise是企业版,如果你是社区版就找Community。2.安装的时候,c++桌面那个需要勾选。

2301_77554343的博客 1507

大模型在心律失常预测及治疗方案制定中的应用研究报告

目录一、引言1.1 研究背景与意义1.2 研究目的与方法1.3 研究创新点二、大模型技术概述2.1 大模型基本原理2.2 常见大模型类型及特点2.3 大模型在医疗领域的应用现状三、心律失常的术前预测与准备3.1 术前心律失常预测的重要性3.2 大模型在术前预测中的应用案例3.3 基于预测结果的术前准备方案四、术中监测与实时调整4.1 术中监测心律失常的方法与技术4.2 大模型辅助术中决策的机制4.3 实时调整手术方案的策略与实践五、术后恢复与并发症风险预测5.1 术后心律失常的监测与评估5.2 大模型预测术

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1596

Android--混淆配置(比较详细的混淆规则)

Android--混淆配置(比较详细的混淆规则)

weixin_42602900的博客 2万+

FPGA实现的AES加解密算法——Verilog源代码详解

本文将介绍基于FPGA的AES加解密算法的Verilog实现,并提供相应的源代码。根据密钥长度的不同,AES算法分为AES-128、AES-192和AES-256三种模式。对于已知的明文-密钥组合,可以使用在线的AES加解密工具计算出正确的密文,然后将该密文与FPGA加速器的输出进行比较。本文以AES-128算法为例,介绍基于FPGA的AES加解密算法的设计思路和Verilog实现。以上是基于FPGA的AES加解密算法的Verilog实现的相关内容。模块接受输入的明文和密钥,并输出加密后的密文。

HackSquad的博客 1976

Java代码混淆工具ProGuard(附有1.8以上和以下使用工具)使用详解

ProGuard是Java类文件收缩器,优化器,混淆器和预验证器。快速混淆Java代码。

m0_46208105的博客 9596

路径规划 | 图解A*、Dijkstra、GBFS算法的异同(附C++/Python/Matlab仿真)

图解A*、Dijkstra、GBFS算法原理,分析三种算法异同,提供C++/Python/Matlab仿真实现

FRIGIDWINTER的博客 2万+

AutoSAR从0开始实战 --- 目录

​​​​​​本专栏是全网最真实的AutoSAR实战专栏,博主将从一个0基础小白的身份来讲解AutoSAR工具的配置,以及相应代码的讲解。

wj博客 1728

gzip压缩,webpack-obfuscator混淆,copy-webpack-plugin复制文件

vue配置gzip压缩,webpack-obfuscator混淆,copy-webpack-plugin复制文件

唐僧洗头用飘柔 488

再相逢【知识图谱】中文医学知识图谱CMeKG,中文产科医学知识图谱COKG | 附:图数据库Neo4j下载安装教学(遇到问题并解决) + Neo4j基本操作

本篇文章介绍知识图谱的相关知识。从便于理解的角度切入,给出知识图谱的形象化定义,并介绍了国内的中文医学知识图谱CMeKG,还以用户视角体验了中文产科医学知识图谱。目录二介绍了如何部署安装Neo4j数据库,并解决了部署过程中遇到的一些基础错误,随后介绍了Neo4j图数据库的基础操作。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 2615

JShaman是专业的JavaScript混淆、JavaScript加密工具

JShaman是专业的JavaScript混淆、JavaScript加密工具。

w2sft的博客 792

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android APK反编译 && 编译时自动拷贝文件和文件夹到out目录

网上各种各样的APK,如果能了解其实现细节,对于学习、借鉴是个很好的推动。利用现成的APK反编译包,可以实现这个目的。 (1)命令方式反编译Apk得到Java源代码         下载反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。apk反编译工具dex2jar,是将apk中的classes.dex转化成j

zhandoushi的专栏 4494

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

代码混淆

混淆 https://gitee.com/minhengqiang/proguard-spring-boot-example/blob/master/pom.xml 链接项目pom.xml有proguard混淆的基本配置,其中混淆程度需要根据项目具体摸索 自动化 将混淆后的代码打包 1、只保留混淆的代码 需要注意几点,injar标签中使用classes(因为最终repackge是替换jar包中的c...

如雨随行的博客 1614

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

含代码,高频实用的20个Python使用小技巧

今天跟大家分享高频实用的20个Python使用小技巧

veratata的博客 396

webpack打包通过利用代码复制的插件,将静态内容注入到window,实现发布不同环境时,修改静态文件即可无需重复修改打包

项目在打包完发布的时候,往往有不同的环境,比如而这些环境又有不同的静态跳转地址,比如在测试环境我跳转到某个商城是要。这时候改了一个需求以后要根据不同的环境修改不同的地址,然后再重新打包,不仅繁琐,而且容易修改错误会和新加的需求代码混在一起。

qq_37057426的博客 371

Android混淆APK直接copy使用

转载请注明出处: 混淆APK在Android Studio当中混淆APK实在是太简单了,借助SDK中自带的Proguard工具,只需要修改build.gradle中的一行配置即可。可以看到,现在build.gradle中minifyEnabled的值是false,这里我们只需要把值改成true,打出来的APK包就会是混淆过的了。如下所示: release { minifyEnabled t

949

学习日记 第二天 内置应用功能无法正常使用 需adb install

内置APP在安卓系统不可或缺,客户有时需要内置一些厂商商店等应用是通过adb install去测试以及验证功能,当要求我们内置时会遇到代码混淆以及各种限制导致应用功能失效,这种时候我们需要写一个脚本去实现开机自动install来替代。本以为行得通,没想到客户要求用他们自己的Launcher,且他们的UI线程有点问题,应用install时如果不在他们的launcher主界面之后install是不会有新图标显示的,除非重启。这里是绘制屏幕的功能,上层该启动的服务应该都起来了,经过测试OK!

无 434

开发实战避坑指南:JavaScript、HTTP、数据库等常见易混淆概念解析

在软件开发中,深入理解基础概念是构建稳定系统的关键。以JavaScript为例,变量声明和作用域是核心概念,`var`、`let`、`const`的不同直接影响了代码的健壮性和可维护性。其原理在于作用域链与执行上下文的差异,这决定了变量的生命周期和访问权限。掌握这些原理的技术价值在于能编写出更可预测、更少错误的代码,尤其在大型应用和团队协作中至关重要。应用场景广泛,从简单的脚本到复杂的单页应用都需要精准的变量管理。同样,在数据库操作中,`DELETE`、`TRUNCATE`与`DROP`虽然都涉及“删除”,

迷彩风情 344

20个Python使用小技巧,建议收藏

字符串拼接,例如 a + ':' + b + ':' + c 会创造大量无用的中间变量,':',join([a, b, c]) 效率会高不少。另外需要考虑字符串拼接是否必要,例如 print(':'.join([a, b, c])) 效率比 print(a, b, c, sep=':') 低。对别名的修改会影响原变量,(浅)复制中的元素是原列表中元素的别名,而深层复制是递归的进行复制,对深层复制的修改不影响原变量。局部变量的查找比全局变量更快,将全局变量的代码定义在函数中运行通常会快 15%-30%。

Python宋宋的专栏 245

20个Python使用小技巧,建议收藏!

本节对一些 Python 易混淆的操作进行对比。对别名的修改会影响原变量,(浅)复制中的元素是原列表中元素的别名,而深层复制是递归的进行复制,对深层复制的修改不影响原变量。注意,当 CSV 文件过大时会报错:_csv.Error: field larger than field limit (131072),通过修改上限解决csv 还可以读以 \t 分割的数据计数器可以统计一个可迭代对象中每个元素出现的次数。当访问不存在的 Key 时,defaultdict 会将其设置为某个默认值。向标准错误输出信息。

xxue345678的博客 217

Android打包混淆Copy解决,有那么难吗?

外国妹子身材真好啊,那些男的都走开 有件重要的事情要说一遍,下班了。夜深人静,我坐在我的爱人身上,全身瘫痪,有种葛优躺的感觉 ,我的椅子又被我做歪了。 在应用发布前,对代码进行混淆处理,可以让我们的代码即使被反编译,也让其难以阅读。AS自身集成Java的ProGuard作为压缩,优化和混淆工具,混淆规则文件是:proguard-rules.pro,启用混淆规则的话修改build....

zkbilian的博客 362

Android App代码混淆终极解决方案

App虽然没有那么的高大上,但是代码的混淆是代表了程序员对App的责任心, 也是对App安全的一点点保证。今天我会将自己做Android混淆的过程和体会分享给大家,也避免大家少走弯路,少跳坑。 本篇博客混淆基于Android Studio的IDE开发环境。 其实在android Studio中做混淆,基本就是对Proguard-rules.pro文件的操作。混淆的过程也是有规律可循的。下面我将...

android的博客 5061

20个Python奇技淫巧,终极干货,建议收藏!

本节对一些 Python 易混淆的操作进行对比。对别名的修改会影响原变量,(浅)复制中的元素是原列表中元素的别名,而深层复制是递归的进行复制,对深层复制的修改不影响原变量。注意,当 CSV 文件过大时会报错:_csv.Error: field larger than field limit (131072),通过修改上限解决csv 还可以读以 \t 分割的数据计数器可以统计一个可迭代对象中每个元素出现的次数。当访问不存在的 Key 时,defaultdict 会将其设置为某个默认值。向标准错误输出信息。

hugo233的博客 382
上一篇: tablayout更改下划线宽高
下一篇: openglview基本使用
Lin_XiJun
博客等级 码龄9年 3粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值