当前位置: 首页 > news >正文

Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

相关链接:

Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

Python导出Excel为Lua/Json/Xml实例教程(三):终极需求

一、Why

无论做什么事,一定有个理由,所以第一步,我来简述一下Why,为什么会有这个需求。

做过游戏的朋友应该知道,游戏当中很多的数据都是通过策划配置在Excel表格中的,而为了使用excel表格中的数据,就需要把excel导出为程序可以识别的格式。

程序中用来存储数据的格式一般为Xml和Json,当然,只要你开心,你也可以用二进制或是txt存储。

无论是导出xml还是json还是其他,只要掌握了原理,导出什么都可以。由于我目前的项目是用Lua来写手机游戏,我就以导出Lua为例来讲解如何通过Python来导出Excel。

二、Python基础

Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言。

有Python基础的朋友建议跳过此小节,进入后续文章。

正是因为Python简单优雅,使用方便,因此博主选择了它作为导出Excel的语言,当然,用PHP、GO、VBA等都能优雅地完成这个需求。

  • 如果你没有任何语言基础,建议跳过本文先去看看完整的Python中文手册

  • 如果已经有了一定的语言基础,但并没有接触过python,那么你只需要掌握下文中列出的几条便足够实现需求了。

  • 如果已经有了python基础,那么可以直接移步教程第二部分:Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

1.安装Python

  • Windows:在Python官网下载对应的安装包,然后安装即可。
  • Macos:自带2.7版本的python,so easy,

博主接下来是以基于Macos的环境实现并测试通过,windows环境并未实测。

2.HelloWorld!

  • 用你的魔法在桌面上创建一个叫"test.py"的文件
  • 在文件中写上一行:print("HelloWorld")
  • 打开终端键入命令:python /Users/你的名字/Desktop/test.py
  • 轻敲回车,搞定。
print("HelloWorld")
    

下图左侧为代码,右侧为执行结果(截图的时候不小心删掉了部分代码)。

HelloWorld

3.几个要点

  • 语句结束无需分号
  • Python是用缩进来区分代码段落
    (Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的退出)
  • 缩进要严格统一,不能空格和TAB混用
    (如果遇到莫名其妙的编译错误,一定要检查这一条!博主就在这条上吃了亏。)
  • 若要在代码中直接写中文,需要加上一句# -*- coding: UTF-8 -*-
  • py是弱类型语言,变量无需类型申明

4.练习一:基本语法

  • int转String:str(数字)
  • String转int:int(字串)
  • if 语句:if 条件1 : 执行1 elif 条件2: 执行2 else: 执行3
  • for循环:for 元素 in 数组 : 执行循环 else: 循环结束执行
  • for循环:for i in range(1, 20, 3):(从1到20,以3为步长进行循环)
  • for循环的else可选的,如果循环未被break终止,则执行else块中的语句。
  • continue和其他语言一样是跳过后面的代码,开始下一轮循环
# Author:Krisik
# 博客地址:http://www.cnblogs.com/krisirk/

# -*- coding: UTF-8 -*- 
# 这句话是让你在本文件中直接写中文

for i in range(1,20,3):
    if i % 2 == 0 :
        print("我是偶数:" + str(i))
    else:
        print("我是奇数:" + str(i))
else:
    print("for循环结束")
    

执行结果如下:

p2



将代码变形一下,再加上一个判断和break,看看会发生什么

# Author:Krisik
# 博客地址:http://www.cnblogs.com/krisirk/

# -*- coding: UTF-8 -*- 
# 这句话是让你在本文件中直接写中文

for i in range(1,20,3):
    if i == 16 :
        break
    elif i % 2 == 0 :
        print("我是偶数:" + str(i))
    else:
        print("我是奇数:" + str(i))
else:
    print("for循环结束")
    

执行结果如下:

p211

可以看到当循环到16,执行break以后,并没有打印19,而且else语句块也没有执行了。

5.练习二:写文件

  • 需要引入库import os
  • 新建或者打开文件:file = open(路径,'w')
  • 向文件中写入数据:file.write('数据')(file为上一步新建的文件)
  • 写入完毕,关闭文件:file.close()

接下来我们用python在桌面创建一个test.lua的文件,然后往里面写入一个字符串

# Author:Krisik
# 博客地址:http://www.cnblogs.com/krisirk/

import os
file = open('/Users/kris/Desktop/test.lua','w')
file.write("Hello lua")
file.close()
    

执行过后,在桌面就会出现一个叫做test.lua的文件

p211

6.总结

到目前为止,我们已经掌握了python的基本用法,也能够将数据写入文件,下一篇我们将会开始操作excel文件。

更多链接:

Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

转载于:https://www.cnblogs.com/krisirk/p/4946093.html

相关文章:

  • 在京高校大学生“准”程序员召集令(新发布上课时间及地点)
  •  D - 粉碎叛乱F - 其他起义
  • Ruby的GC机制源码分析(4)
  • 【随笔】android开发的学习路线
  • 第十章学习笔记总结
  • S3C2440-AD应用
  • 【JavaScript知识点七】 javascript 字符串函数
  • Molehill 3D APIs - GPU硬件加速的Flash 3D API
  • DirectX
  • maven学习讲解
  • 3D游戏引擎的基本架构
  • 思维的划分
  • APP交互
  • Android-播放视频简单案例
  • 近期的一些安排
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • E-HPC支持多队列管理和自动伸缩
  • Git 使用集
  • PHP CLI应用的调试原理
  • SegmentFault 2015 Top Rank
  • vuex 学习笔记 01
  • 当SetTimeout遇到了字符串
  • 观察者模式实现非直接耦合
  • 利用DataURL技术在网页上显示图片
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 异步
  • 再谈express与koa的对比
  • 找一份好的前端工作,起点很重要
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 你对linux中grep命令知道多少?
  • ​【已解决】npm install​卡主不动的情况
  • #{} 和 ${}区别
  • #HarmonyOS:基础语法
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (分布式缓存)Redis哨兵
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (七)c52学习之旅-中断
  • (转)Mysql的优化设置
  • (转)ORM
  • (转)可以带来幸福的一本书
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core 2.1路线图
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net 微服务 服务保护 自动重试 Polly
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET项目中存在多个web.config文件时的加载顺序
  • /etc/skel 目录作用
  • @WebService和@WebMethod注解的用法
  • []T 还是 []*T, 这是一个问题
  • [<事务专题>]
  • [1525]字符统计2 (哈希)SDUT
  • [20161214]如何确定dbid.txt