python写文件

第四章 python的文件操作

匿名 (未验证) 提交于 2019-12-02 22:51:30
在python里,我们可以通过open()方法打开文件并且用内置方法处理文件内容。 需要注意的是,open() 会默认自动转换为2进制再存储(write方法执行时)。所以open命令也是在2进制的基础上进行存储的。 obj = open(file='路径',mode='模式',encoding='编码') obj.write() # 可写模式下 obj.read() # 可读模式下 obj.close() 操作字符串 r/w/a r+/w+/a+ 直接操作2进制 rb/wb/ab r+b/w+b/a+b read() #全部读入内存 read(2) r模式下2表示读取前两个 字符 (不是字节),当rb模式,就是读取2个字节了 write(str) #w模式下,写入字符串 wb模式下写入的是2进制,所以字符串需要decode到2进制进行写入: 'obj.write(你好'.decode(utf-8)) seek(光标字节的位置) #无视打开模式都是字节 tell() #获取光标当前所在的字节位置 flush() #强制将写入内存的数据刷到硬盘上,相当于保存到硬盘 文件不关闭,就会浪费资源。有时候写代码的时候会忘记close() 推荐文件打开方法: with open(file='路径',mode='模式',encoding='编码') as f: # 相当于 f = open

python黑科技:使用python读取照片中的信息

匿名 (未验证) 提交于 2019-12-02 22:11:45
一、概述 通常通过手机或相机拍摄的图片中影藏了照片的属性信息和拍摄数据,主要通过EXIF(Exchangeable image file format: 可交换图像文件格式) 进行存储这部分信息 该部分信息可以被修改,另外也可通过图像信息影藏方式,往图像中写入特定的信息,可用于信息加密等 二、解析图片拍照时间 环境中需要先安装exifread,采用下面命令进行: pip install exifread 接下来我们便开始动手写代码,代码如下。 遇到python不懂的问题,可以加Python学习交流群:1004391443一起学习交流,群文件还有零基础入门的学习资料 读取照片的拍摄时间 除了照片信息之外,还可以读取更多信息,包括拍摄地址,摄像机类型等等信息。 文章来源: https://blog.csdn.net/fei347795790/article/details/90730006

Python高效率遍历文件夹寻找重复文件

梦想的初衷 提交于 2019-12-02 21:51:40
前言 为什么要写这篇文章呢。。。主要还是业务中有个需求,遍历一个将近200w数据的文件夹,大部分还都是视频文件那种,但是这玩意用的次数还不多,做文件夹index也不是很ok,所以写了一个脚本来处理这个问题,从而发现了自己的一些薄弱点,将其记录下来,方便自己,也方便未来其他的兄弟使用 基本需求 把文件夹中的重复文件找出来 找出来之后用csv输出,左边是源文件,右边是重复文件 效率不能差,不能直接撑爆内存,不能占用过多资源 检测的文件夹和存放csv的地方可以自己定义,加上终端交互 重复文件筛选支持md5,大小等方式 需求分析 首先要分析一点,就是我们该如何去做重复文件的对比,并且效率还要高,首先网上过多的递归,os.walk的方法不可用,因为他们都会把遍历到的内容直接做成一个大列表,塞到内存里面,数据量大很容易爆掉,并且还要进行MD5,或者是大小比对,这个就非常难缠了。 基础想法 其实说白了,拿到所有文件列表file_list,把文件依次对比,这里我们可以用dict,分两种情况 按照文件名和大小 设定两个dict,例如record和dup,遍历file_list,生成一个数组,比对其中的文件名和大小 按照大小和MD5值 设定两个dict,例如record和dup,遍历file_list,生成一个数组,比对其中的md5值和大小 具体代码 闲话休提,我们开始写代码吧 定义遍历函数代码

浩聚娱乐-浩聚娱乐注册-Python 中如何实现

折月煮酒 提交于 2019-12-02 20:35:25
浩聚平台指定注册下载在写 Python 项目的时候,我们可能经常会遇到导入模块失败的错误: ImportError: No module named 'xxx' 或者 ModuleNotFoundError: No module named 'xxx'    点击链接注册浩聚账号 浩聚YL注册 浩聚YL登录    在写 Python 项目的时候,我们可能经常会遇到导入模块失败的错误: ImportError: No module named 'xxx' 或者 ModuleNotFoundError: No module named 'xxx' 。 导入失败问题,通常分为两种:一种是导入自己写的模块(即以 .py 为后缀的文件),另一种是导入三方库。本文主要讨论第二种情况,今后有机会,我们再详细讨论其它的相关话题。 解决导入 Python 库失败的问题,其实关键是在运行环境中装上缺失的库(注意是否是虚拟环境),或者使用恰当的替代方案。这个问题又分为三种情况: 一、单个模块中缺失的库 在编写代码的时候,如果我们需要使用某个三方库(如 requests),但不确定实际运行的环境是否装了它,那么可以这样写: try: import requests except ImportError: import os os.system('pip install requests') import

Python最佳工程实践,建立一个完美的工程项目

旧巷老猫 提交于 2019-12-02 18:07:47
在程序开发时候一套好的开发环境和工具栈,可以帮我们极大的提高开发的效率,避免把大量时间浪费在周边琐事上。本文以Python为例,教大家如何快速打造完美的Python项目开发环境:内容涵盖了模块依赖管理、代码风格管理、调试测试管理和Git版本管理,使用git hook做项目规范检查等。 pipx Pipx是一款跨平台的Python环境隔离管理工具,可以在支持在 Linux、Mac OS 和 Windows 上运行。Pipx默认在是个人用户下建立虚拟Python环境,并以此建立实现完全隔离的Python运行环境。安装pipx需要Pthon 3.6及以上版本: python3 -m pip install --user pipxpython3 -m pipx ensurepath 升级Pipx使用: python3 -m pip install -U pipx 包依赖管理pipenv Pipenv会自动为你的项目创建和管理虚拟环境,以pipfile文件方式方式管理项目的依赖包,支持包的安装和卸载。和requirements.txt不同,pipfile是TOML格式,支持开发环境与正式环境,还可以使用Pipfile.lock锁定环境版本。pipxenv的安装可以使用pipx: pipx install pipenv 有些发行版也是可以直接通过其包管理器安装的: 比如MacOS可以下可以使用

python学习心得2019/9/25

耗尽温柔 提交于 2019-12-02 12:54:24
python的介绍:Python是一种跨平台的计算机程序设计语言(高级开发语言同Java与Objective)。 特点:面向对象动态类型,简洁、易读以及可扩展性。 学习目标:Python where we can, C++ where we must在操控硬件的场合使用C++,在快速开发时候使用 Python。 和其他语言对比:python->字节码->机器语言->0101,没有C/C++快,内存管理不用自己考虑了,不考虑过程,难度与所学过的语言相比,c/c++>Objective>java>python,运行效率也是由高到低,但是所需代码少,go语言网络请求最好,不用考虑并发,为了能让程序员减少开发成本,python适合运维自动化,数据挖掘,爬虫,应用广,快捷开发应用,PHP适合web开发 python的种类:常说的python基于C的python(代码->C字节码->机器码(一行一行)),也有基于Java等其他的语言的python,特殊的是pypy(批量的拿过来语句转成字节码再机器码,下次直接是机器码,快,代码->C字节码->机器码全部转换完->执行),总的来说就是Cpython,PYPY,其他python(代码->自己认识的字节码->机器码)。 python基础;感悟就是写作文,学英语写英语作文,学日语写日语文章,学规则写代码,都是学规则 规则; 安装:解释器 写程序:C:

python写一个地球同步卫星图动态壁纸(第三部分)

隐身守侯 提交于 2019-12-02 11:18:34
———————————————————————————————— 前序: 系统:Windows 10 IDE:PyCharm Python:3.7.4 python写一个地球同步卫星图动态壁纸(第一部分) 第一部分主要是下载地球同步卫星图片到本地 第二部分主要是修改同步卫星图片的尺寸 第一部分: https://blog.csdn.net/L141210113/article/details/102624596 第二部分: https://blog.csdn.net/L141210113/article/details/102642277 ———————————————————————————————— 一、修改壁纸 1. 安装pywin32 说明: 这个是调用win的一些接口,可以获取分辨率,设置壁纸。 链接:https://pan.baidu.com/s/1aLxbxxSrl6YLUYbC1cppUw 提取码:ai0m 我这个是python3.7的,如果你也是我建议你直接下载我这个安装,其他版本的可能会报错。 如果python版本不对你去这里找适合的:https://github.com/mhammond/pywin32 下载后是exe直接让他自己找python位置,然后默认安装即可。 2.调用接口设置壁纸 import win32api , win32con ,

计算机字符编码基础

感情迁移 提交于 2019-12-01 10:42:42
一、计算机基础 二、文本编辑器存取文件的原理 1、打开编辑器就打开启动了一个进程,是在内存中,所以,用编辑器编写的内容也都是存放与内存中的,断电后数据丢失了。 2、要想永久保存,需要点击保存按钮:编辑器把内存的数据刷到硬盘上。 3、在外面编写一个.py文件(没有执行),跟编写其他的文件没有任何区别,都只是在编写一堆字符而已。 三、Python解释器执行py文件的原理 第一阶段:Python解释器启动,此时就相当于启动了一个文本编辑器。 第二阶段:Python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中(小复习:Python的解释性,决定了解释器只关心文件内容,不关心文件后缀名)。 第三阶段:Python解释器解释执行刚刚加载到内容中的test.py的代码(ps:在该阶段,即真正执行代码时,才会识别Python的语法,执行文件内代码,当name=“egon”,会开辟内存空间存放字符串“egon”)。 四、Python解释器与文件本编辑的异同 相同点:Python解释器是解释文件内容的,因而Python解释器具备读py文件的功能,这一点与文本编辑器一样。 不同点:文本编辑器将文件内容读入内存后,是为了显示或者比编辑,根本不去理会python的文法,而Python解释器将文件内容读入内存后,可不是为了给你瞅一眼Python代码写的啥

Python爬虫小白入门必读,成为大牛必须经历的三个阶段

☆樱花仙子☆ 提交于 2019-12-01 06:09:38
学习任何一门技术,都应该带着目标去学习,目标就像一座灯塔,指引你前进,很多人学着学着就学放弃了,很大部分原因是没有明确目标,所以,一定要明确学习目的,在你准备学爬虫前,先问问自己为什么要学习爬虫。有些人是为了一份工作,有些人是为了好玩,也有些人是为了实现某个黑科技功能。不过可以肯定的是,学会了爬虫能给你的工作提供很多便利。 大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784758214,这里是python学习者聚集地!!同时,自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每日分享一些学习的方法和需要注意的小细节 小白入门必读 作为零基础小白,大体上可分为三个阶段去实现。 第一阶段是入门,掌握必备基础知识,比如Python基础、网络请求的基本原理等; 第二阶段是模仿,跟着别人的爬虫代码学,弄懂每一行代码,熟悉主流的爬虫工具, 第三阶段是自己动手,到了这个阶段你开始有自己的解题思路了,可以独立设计爬虫系统。 爬虫涉及的技术包括但不限于熟练一门编程语言(这里以 Python 为例) HTML 知识、HTTP 协议的基本知识、正则表达式、数据库知识,常用抓包工具的使用、爬虫框架的使用

四步学懂python中的编解码

左心房为你撑大大i 提交于 2019-12-01 01:52:05
1. 字符与字节 一个字符不等价于一个字节,字符是人类能够识别的符号,而这些符号要保存到计算的存储中就需要用计算机能够识别的字节来表示。一个字符往往有多种表示方法,不同的表示方法会使用不同的字节数。比如字母A-Z都可以用ASCII码表示(占用一个字节),也可以用UNICODE表示(占两个字节),还可以用UTF-8表示(占用一个字节)。字符编码的作用就是将人类可识别的字符转换为机器可识别的字节码,以及反向过程。 UNICDOE才是真正的字符串,而用ASCII、UTF-8、GBK等字符编码表示的是字节串。 我们写代码是写在文件中的,而字符是以字节形式保存在文件中的,因此当我们在文件中定义个字符串时被当做字节串也是可以理解的。但是,我们需要的是字符串,而不是字节串。Python2把字节串当做字符串来使用。最能说明这个问题的操作就是取一个包含中文字符的字符串的长度: 对字符串取长度,结果应该是所有字符串的个数,无论中文还是英文 对字符串对应的字节串取长度,就跟编码(encode)过程使用的字符编码有关了(比如:UTF-8编码,一个中文字符需要用3个字节来表示;GBK编码,一个中文字符需要2个字节来表示) 注意:Windows的cmd终端字符编码默认为GBK,因此在cmd输入的中文字符需要用两个字节表示 >>> # Python2 >>> a = 'Hello,中国' # 字节串