python 文件读写

如何利用python优化解析xml文件 导读 本篇文章意在演示如何利用 python 解析 xml 文件。这篇文章的引出背景是,在程序开发过程中,一贯坚持的做法是「约定优于配置」, 但怎么取检测有没有按照约定去做的,以 maven 为例,maven 提供了 maven-enforcer-plugin 插件,可以用这个插件定制一系列 规则。所以我们需要做的就是用 python 在 pom 文件中插入 maven-enforcer-plugin 的配置 。 python 环境: 3.8 本文首发于 https://russellgao.cn/pyt 阅读详情

    最近有个项目,工程是utf-8的,最后要求打jar包打GBK的,但是如果直接使用eclipse进行转换的话,中文注释就会出现问题,为了解决这个问题,不得不写脚本批量对整个工程目录进行编码转换,转换思路是先把utf-8转换成unicode,再从unicode转换成GBK,这样的话就可以保证中文注释能够不丢失的情况下转换过来。

     文件处理的话,用python最好,python的文件处理强大且简单,不像java里面各种流和buffer那么复杂。废话不多说,上代码:

代码的功能就是将指定目录下的所有文件拷贝一份,并看针对特殊的文件进行编码转换,例如我这里讲.java .pom .xml文件进行了转换

#encoding=utf-8
#!/usr/bin/python
import os
import shutil

"""
开发过程中遇到需要将java工程从utf-8转到gbk的,直接使用eclipse转是做
不到的,于是想着开发一个脚本,遍历目录去做这件事情。

这个类的作用就是将指定目录下的所有文件(文件类型可配置)转换成指定编码格式
"""
class FilesEncodeConvetor():

	def __init__(self, folderPath, suffix):
		self.basePath = folderPath
		self.newBasePath = folderPath+'_new'
		self.suffixList = self._praseSuf(suffix)

	#按逗号分割
	def _praseSuf(self, suffix):
		return suffix.split(',')

	#初始化文件信息
	def _initFileList(self):
		#将文件列表建立起来
		self.fileList = os.listdir(self.basePath)

	def convert(self):
		print('*'*7+"begin"+'*'*7)
		print('old: ['+self.basePath+']')
		print('new: ['+self.newBasePath+']')

		self._convert_folder(self.basePath, self.newBasePath)

		return

	def _convert_folder(self, folderpath, targetfolder):

		if not os.path.exists(folderpath):
			print("某已经存在,直接返回")
			return

		self._makedir(targetfolder)
		#print("目标目录拷贝完成: "+targetfolder+'*'*9)

		for f in os.listdir(folderpath):

			#隐藏的文件不拷贝
			if f.startswith('.'):
				continue

			f_new = os.path.join(folderpath, f)
			target_f = os.path.join(targetfolder, f)
			if os.path.isdir(f_new):
				if f in self.exceptFolderList:
					continue
				self._convert_folder(f_new, target_f)

			if os.path.isfile(f_new):
				self._convert_file(f_new, target_f)

	def _convert_file(self, file_from, file_to):

		
		if not os.path.exists(file_from):
			return

		#取后缀
		f_suffix = os.path.splitext(file_from)[1]

		#后缀不在配置内的就直接进行copy,不进行编码转换
		if f_suffix not in self.suffixList:
			if not os.path.exists(file_to):
				shutil.copyfile(file_from, file_to)

		else:
			self._convert_encode_file(file_from, file_to)

		#print("拷贝文件结束"+file_to+' '+'*'*9)


	def _convert_encode_file(self, file_from, file_to):

		if os.path.exists(file_to):
			print('文件已经存在'+file_to)
			return

		try:
			in_file = open(file_from, 'r')
			out_file = open(file_to, 'wb')
			text = in_file.read()
			out_file.write(text.decode(self.encode_from).encode(self.encode_to))

		except Exception, e:
			print e
			print '拷贝目标文件失败'+file_to+'*'*9
			out_file.close()

			os.remove(file_to)
			shutil.copyfile(file_from, file_to)
			print('重新拷贝成功'+file_to+'*'*9)
		else:
			pass
		finally:
			in_file.close()
			out_file.close()
			pass

	def _makedir(self, dirpath):
		if os.path.exists(dirpath):
			return

		os.mkdir(dirpath)

	def setEncodeFromTo(self, encode_from, encode_to):
		self.encode_from = encode_from
		self.encode_to = encode_to


	def setFolderExcept(self, f_list):
		self.exceptFolderList = f_list



if __name__ == '__main__':
	folderpath = '/Users/hupeng/Downloads/temp/test/acts'
	suffix= '.pom,.xml,.java,.MF'
	convertor = FilesEncodeConvetor(folderpath, suffix)
	convertor.setEncodeFromTo('utf8', 'gb18030')

	except_folder = []
	except_folder.append('target')
	except_folder.append('logs')
	convertor.setFolderExcept(except_folder)
	convertor.convert()
	

代码如上,本人比较喜欢用python做文件处理和运维相关的,如果有问题可以直接咨询我qq623158938

快速整理文件——使用Python遍历文件 案例 鸽子忘记自己的mp3文件存储在哪些地方了,想将它们都找出来并整理。 利用os.walk方法遍历目录(D盘),然后将它们都保存到一个文件夹下: importos importshutil importpathlib fromtqdmimporttqdm search_path="D:/"#查找D盘 store_path="D:/音乐" #如果sotre_path不存在 阅读详情

相关推荐

Python文件读写

每个键值对由一个键(key)和对应的值(value)组成,键和值之间使用冒号(:)分隔,键值对之间使用逗号(,)分隔。然而,Python也支持使用正斜杠(/)来表示文件路径,即使在Windows上也是如此。总而言之,Python中使用正斜杠或反斜杠来表示文件路径都是可以的。在Python中,文件路径可以使用正斜杠(/)或反斜杠(\)来表示。在Python中,可以使用。因此,在这些系统上,使用正斜杠表示文件路径是常见的做法。在实际应用中,进行读写时,往往会忘记最后的关闭操作,所以可以使用。

巧克力配酸奶的博客 3340

python 修改pom文件_在Python中读取Maven Pom xml

我有一个pom文件,定义如下:xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">4.0.0org.welshmy-site1.0.0pomorg.welsh.utilssite-tool1.0homepage/content/homepageasset...

weixin_42408865的博客 962

Python之文件读写

文件读写就是一种常见的IO操作。那么根据上面的描述,可以推断python也应该封装操作系统的底层接口,直接提供了文件读写相关的操作方法。事实上,也确实如此,而且Java、PHP等其他语言也是。

m0_72557783的博客 1634

Python操作XML教程:读取、写入、修改和保存XML文档

XML是一种常见的数据交换格式,在许多应用中都被广泛使用。通过掌握Python操作XML的基础知识,您将能够轻松地处理XML数据,从而实现数据的提取、修改和存储。这是一个简单的Python操作XML的教程,涵盖了读取、写入、修改和保存XML文档的基本步骤。通过遍历根元素和其子元素,可以访问XML文档中的各个元素和其属性。模块,该模块提供了解析和操作XML文档的功能。方法将修改后的XML文档保存到文件中。函数解析XML文档。对象,表示整个XML文档的树结构。属性修改元素的文本内容,使用。方法修改元素的属性。

专注于Python编程技术的分享与交流,致力于帮助开发者提升编程技能,解决实际问题,探索Python的无限可能。 4万+

【python之文件读写】

I/O在计算机中是指Input/Output,也就是Stream(流)的输入和输出。这里的输入和输出是相对于内存来说的,Input Stream(输入流)是指数据从外(磁盘、网络)流进内存,Output Stream是数据从内存流出到外面(磁盘、网络)。程序运行时,数据都是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方(通常是磁盘、网络操作)就需要IO接口。那么这个IO接口是由谁提供呢?高级编程语言中的IO操作是如何实现的呢?操作系统是个通用的软件程序,其通用目的如下:硬件驱动。

分享关于数据的知识。 4069

python入门之文件的读写

1、python文件读写的方式 文件读写就是一种常见的IO操作。python封装了操作系统的底层接口,直接提供了文件读写相关的操作方法;文件读写不需要额外引入第三方库; 一个文件读写的步骤: 1、从硬盘中读取一个文件路径 2、加载文件到内存中,获取文件对象(也叫文件句柄) 3、通过文件对象对对接进行读写操作 4、最后需要关闭文件; 2、打开一个文件: #一般写法 f = open(file,mode,encoding=‘utf8’) 主要是三个参数,文件路径,打开模式,文件编码 关于打开模式的描述

weixin_42551921的博客 8476

Python 解析 Spring pom 文件获取 jar 包名称

Python 解析 Spring pom 文件获取 jar 包名称 前段时间在做持续集成有个小需求是根据 pom 文件获取 jar 包名称,在网上搜寻一番,整理了一份脚本,可以直接使用,通过解析 pom 文件获取(xml2pydict.py): 使用示例:python xml2pydict.py pom.xml 输出结果:jar 包名称 #!/usr/bin/env python # -*- co...

qhh0205 1525

比利时风电光伏负荷一体化数据集解析与应用

本文深度解析了由比利时输电系统运营商Elia集团提供的风电光伏负荷一体化数据集。该数据集整合了负荷、风电与光伏出力数据,并包含多时间尺度的官方预测值,时间跨度长达四年,是研究能源转型、构建电力预测模型及分析电网运行的宝贵资源。文章详细介绍了数据价值、字段含义、实战应用场景(如预测模型基准测试、风光互补性分析)以及数据处理指南,为相关领域的研究与开发提供了高质量数据基础和实践参考。

weixin_29200741的博客 428

【Python 文件读写】— txt文件

使用Python对txt文件进行读写操作

yang4123的博客 1万+

带隙基准源要点

要点: 负反馈>正反馈;电流镜匹配;双极型晶体管匹配;电阻匹配; 经过R0的电流????????????=????????????????−????????????????????????=∆????????????????????i_R0=(〖VBE〗_1-〖VBE〗_2)/R_0 =∆VBE/R_0 经过R1的电流????????????=i_R1= ????????????????????VBE/R_1 零温电流I = ∆????????????????????∆VBE/R_0 +

HI_WALLE的博客 2263

运算放大器电路中的T型网络:如何用更小电阻实现高增益并降低噪声?

本文深入解析了运算放大器电路中T型反馈网络的设计与应用。该网络通过三个较小阻值电阻的组合,等效实现高增益,有效规避了传统大反馈电阻带来的显著热噪声问题。文章从数学原理、噪声定量分析到实际设计技巧,系统阐述了如何利用T型网络在实现高增益的同时,显著降低电路噪声并改善整体性能。

banana的博客 318

python之文件读写

I/O在计算机中是指Input/Output,也就是Stream(流)的输入和输出。这里的输入和输出是相对于内存来说的,Input Stream(输入流)是指数据从外(磁盘、网络)流进内存,Output Stream是数据从内存流出到外面(磁盘、网络)。程序运行时,数据都是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方(通常是磁盘、网络操作)就需要IO接口。那么这个IO接口是由谁提供呢?高级编程语言中的IO操作是如何实现的呢?操作系统是个通用的软件程序,其通用目的如下:硬件驱动。

mate1357的博客 1839

知识图谱_知识图谱 | 知识图谱做用户画像

导读:最近一直在思考怎么用知识图谱做推荐,但是目前能知道的内容都是基于路径的推荐和基于图特征的推荐,所以能不能换一个角度,探究一下用知识图谱怎么做用户画像,因为画像也是推荐系统重要的一部分。现在的知识图谱+推荐怎么做的传统的用户画像怎么做现在的知识图谱+推荐怎么做的?基于路径:可以理解成基于图谱的多路径召回,或者多路径推荐,然后根据路径的转移概率进行排序从而达到推荐的效果,基于路径比较适合简单的推...

weixin_28801659的博客 1460

python怎么读写文件-python读写文件

一、读写文件方式在当前python文件同级目录下存在一个名为file的文件,内容如下1、使用with open读取文件defread_file(filepath):with open(filepath) as fp:content=fp.read();returncontentret=read_file('file')print(ret)在上述脚本中可以发现,content作为一个列表,虽然在wi...

weixin_37988176的博客 1269

(MIUI)小米手机录音文件深度寻踪:从系统缓存到数据目录的实战解析

本文深入解析了MIUI系统中录音文件丢失的常见原因及解决方案,包括系统升级兼容性问题、应用缓存机制异常和存储权限变动。通过实战操作指南,详细介绍了如何从系统目录、数据库层面恢复录音文件,并提供了预防措施和自动化备份方案,帮助小米手机用户有效找回重要录音数据。

weixin_42699679的博客 518

Anomalies,Factors,andMultiFactorModels

转 Anomalies, Factors, and Multi-Factor Models 作者:石川,量信投资创始合伙人,清华大学学士、硕士,麻省理工学院博士;精通各种概率模型和统计方法,擅长不确定性随机系统的建模及优化。知乎专栏:https://zhuanlan.zhihu.com/mitcshi。未经授权,严禁转载。 摘要:本文解释了异象、因子以及多因子模型的区别和联系;梳理了从异象到因子再...

绿杨 793

用Python读写文件的方法

在文中,我们将研习如何用Python读取文件,然后,向文件写入内容并再次保存它。使用Python读写某种特别类型的文件,例如:JSON、CSV、Excel等,一般会有专门的模块。但是,在这里,我们将用Python打开文本文件(.txt)。 若使用Python的open函数,它将返回一个文件对象,此对象将包含一些方法和属性。我们可以使用这些方法和属性获得已打开文件的相关信息,并且,可以使用这些方法来更改所打开的文件。 用 open()读取文件 在本节中,我们将学习如何使用open()函数在Python中加载文

计算机科学、人工智能、数据分析和大数据方向的研发和教学。 1万+

微信小程序 - 实现身份证OCR识别人像面与国徽面并提取字段信息,详解从手机相册选取或打开摄像头拍照上传身份证正反面图片ocr文字识别数据填充表单(提供免费纯前端ocr识别插件+百度OCR识别API)

微信小程序身份证识别,微信小程序身份证拍照、上传并OCR识别,微信小程序实现OCR扫描识别,微信小程序识别身份证免费插件,微信小程序实现身份证识别功能。ocr识别插件。微信身份证拍照后进行ocr识别,微信小程序OCR扫描识别身份证,OCR身份证实名认证+图片上传+拍照上传图片,微信小程序之身份证照片正反上传,小程序OCR身份证识别,微信小程序实现文字识别-ocr插件,微信小程序利用百度AI实现扫描身份证获取信息功能,基于微信小程序OCR插件实现身份证拍照、上传并OCR识别的示例demo,将上传的照片传到服务

🏆 前端领域优质创作者 8133

【Python入门】文件读写

在Python编程中,文件读写是一项基本而重要的技能,它允许我们与外部存储介质进行交互,获取数据或将数据持久化存储。通过简单的函数调用,我们可以轻松地打开文件、读取内容、写入数据以及关闭文件,这些操作构成了数据处理和文件管理的基础。Python提供了强大的内置函数和模块,使得文件操作既直观又高效,无论是处理文本文件、二进制文件还是进行更复杂的文件系统操作,都能轻松应对。接下来,我们将探讨如何在Python中实现这些基本的文件读写操作。

KevinRay_0854的博客 1371

GitLab CI/CD .gitlab-ci.yml 关键词(十一):发布版本 release

本篇文章介绍使用GitLab CI/CD 发布一个版本,对外发布。并填写一些发布的信息。

知无涯 4718

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python以读写方式打开文件_Python读写文件

Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。file_object = open('thefile.txt')try:all_the_text = file_object.read( )finally:file_object.close( )注:不能把open语句放在try块里,因为当打...

weixin_39857876的博客 3362

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

超详细的Python文件读写

I/O在计算机中是指Input/Output,也就是Stream(流)的输入和输出。这里的输入和输出是相对于内存来说的,Input Stream(输入流)是指数据从外(磁盘、网络)流进内存,Output Stream是数据从内存流出到外面(磁盘、网络)。程序运行时,数据都是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方(通常是磁盘、网络操作)就需要IO接口。那么这个IO接口是由谁提供呢?高级编程语言中的IO操作是如何实现的呢?操作系统是个通用的软件程序,其通用目的如下:硬件驱动。

weixin_68789096的博客 3194

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python bin文件读写_Python读写文件

给要打开的文件对象指定一个名字,这样可在完成操作之后迅速关闭文件,防止一些无用的文件对象占用内存Python读写文件的五大步骤一、打开文件Python读写文件在计算机语言中被广泛的应用,如果你想了解其应用的程序,以下的文章会给你详细的介绍相关内容,会你在以后的学习的过程中有所帮助,下面我们就详细介绍其应用程序。代码如下:说明:第一个参数是文件名称,包括路径;第二个参数是打开的模式mode'r':只...

weixin_31659795的博客 5162

Python读写文件

一、读写文件方式 在当前python文件同级目录下存在一个名为file的文件,内容如下 1、使用with open读取文件 def read_file(filepath): with open(filepath) as fp: content=fp.read(); return content ret=read_file...

weixin_30492601的博客 2637

python文件读写指针

当我们学会了用python打开文本文件并进行简单的读取和写入操作时,不知道我们有没有注意到python使用read()和write()函数读写文件的机制,这种机制与我们在打开文件时设置的模式有关。 常用的打开文件的模式为: ‘r’:只读,在文件的开始处读取文件的内容 ‘w’:只写,设置为w模式时,文件的内容将被清空,此时从文件的开始处写入新的内容 ‘a’:只写,文件的内容保留,但从文件的最末尾处开始写入新的内容 ...

ccleehom的博客 4139
上一篇: spring Aop MethodInterceptor接口
下一篇: jquery ajax异步请求
Viogs
博客等级 码龄15年 29粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值