项目实现功能

本项目主要是为简化更新包的数据打包。
程序可以批量提取文件夹中的文件名及扩展名,并将结果存储为xml格式,根目录不需要提取。支持所有文件类型。
例如:文件:bin/assets/car/granLavida1.swf
提取到xml文件为:< file path=”assets/car/granLavida1.swf” filename=”assets/car/granLavida1.swf” >
项目预期生成的xml文件如下图:
filename_xml

项目代码

本项目由github上Root_Jane组织成员远程协作完成。
代码贡献者:

项目地址:https://github.com/Root-Jane/filename_xml

项目代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
import os
import os.path

path = r"L:\bin" #根目录路径
xml_path = r"L:\Python\test.xml" #生成的xml文件储存路径

with open(xml_path,"w",encoding="utf-8") as f: #创建xml文件
for root, dirs, files in os.walk(path): #os.walk遍历根目录所有文件
for filename in files: #打印出所有文件路径和名称
filepath=root + '\\' + filename
filepath=filepath.strip(path).replace("\\","/")
filename_xml="<file path=\"" + filepath + "\"" + " filename=\"" + filepath +"\""+"/>" +"\n" #生成xml格式文本
f.write(filename_xml)

项目分析

本项目主要用到了python自带模块os中的函数os.walk进行文件夹所有文件的遍历,os.walk返回root、dirs、files三个值,其中:

  • root变量类型是字符串,代表当前根目录的路径。
  • dirs类型为list,是当前目录含有的所有子目录的合集。
  • files类型也为list,是当前目录含有的所有文件的合集。

去除根目录路径用到strip函数,strip可以将一个字符串里某个特定的字符串删除,这里我们需要删除path变量代表的值。
为保持与linux的文件管理系统相兼容,我们使用replace函数将路径中的“\”替换成“/”。
最终结果写入xml文件。