文件目录

基于grunt的前端构建

隐身守侯 提交于 2020-03-25 09:56:47
3 月,跳不动了?>>> 在 「grunt的初次使用」 的基础上,这一篇继续对grunt进行探索研究。这一次不再使用php进行include静态文件,而是在html里面引入。然后主要将grunt用于两个大的方向,一个是用于开发期间,一个用于上线前期打包。使用到的插件可能有些更换。具体目录如下,src目录用于开发与维护,dist目录是打包后的项目,用于上线: ├─ dist/ ├─ css/ ├─ images/ ├─ js/ └─ view/ └─ src/ ├─ css/ ├─ images/ ├─ js/ ├─ sass/ └─ view/ 在开发期间,使用到的grunt插件如下,watch插件用了监听文件,一旦文件被修改,可以让它触发浏览器自动刷新: "devDependencies": { "grunt": "^0.4.5", "grunt-contrib-jshint": "^0.12.0", "grunt-contrib-sass": "^0.9.2", "grunt-contrib-watch": "^0.6.1" } 图片不需要压缩,css使用sass编译,js使用了requirejs,并使用jshint进行检错。其中sass编译好后会在同一目录下生成对应的css目录与文件。jshint的具体配置参考 「例子」 。 sass: { dev: { options: {

python全栈开发从入门到放弃之常用模块和正则

▼魔方 西西 提交于 2020-03-25 05:49:32
什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别:    1 使用python编写的代码(.py文件)   2 已被编译为共享库或DLL的C或C++扩展   3 包好一组模块的包   4 使用C编写并链接到python解释器的内置模块 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用, 正则表达式 首先你要知道的是,谈到正则,就只和字符串相关了。在我给你提供的工具中,你输入的每一个字都是一个字符串。其次,如果在一个位置的一个值,不会出现什么变化,那么是不需要规则的。  比如你要用"1"去匹配"1",或者用"2"去匹配"2",直接就可以匹配上。这连python的字符串操作都可以轻松做到。那么在之后我们更多要考虑的是在同一个位置上可以出现的字符的范围。 字符组 : [字符组]

《Python标准库》 目录

末鹿安然 提交于 2020-03-25 05:46:41
目录 译者序 序 前言 第1章 文本 1.1 string—文本常量和模板 1.1.1 函数 1.1.2 模板 1.1.3 高级模板 1.2 textwrap—格式化文本段落 1.2.1 示例数据 1.2.2 填充段落 1.2.3 去除现有缩进 1.2.4 结合dedent和fill 1.2.5 悬挂缩进 1.3 re—正则表达式 1.3.1 查找文本中的模式 1.3.2 编译表达式 1.3.3 多重匹配 1.3.4 模式语法 1.3.5 限制搜索 1.3.6 用组解析匹配 1.3.7 搜索选项 1.3.8 前向或后向 1.3.9 自引用表达式 1.3.10 用模式修改字符串 1.3.11 利用模式拆分 1.4 difflib—比较序列 1.4.1 比较文本体 1.4.2 无用数据 1.4.3 比较任意类型 第2章 数据结构 2.1 collections—容器数据类型 2.1.1 Counter 2.1.2 defaultdict 2.1.3 deque 2.1.4 namedtuple 2.1.5 OrderedDict 2.2 array—固定类型数据序列 2.2.1 初始化 2.2.2 处理数组 2.2.3 数组与文件 2.2.4 候选字节顺序 2.3 heapq—堆排序算法 2.3.1 示例数据 2.3.2 创建堆 2.3.3 访问堆的内容 2.3.4 堆的数据极值 2

python之路-模块和包

大兔子大兔子 提交于 2020-03-25 05:45:05
一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 2 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将 程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用, 1.1 import 示例文件:自定义模块my_module.py,文件名my_module.py,模块名my_module 1 #my_module.py 2 print('from the my_module.py') 3 4 money=1000 5 6 def read1(): 7 print('my_module->read1->money',money) 8 9 def

个人项目:wc程序(java)

跟風遠走 提交于 2020-03-25 05:43:11
Github项目地址: https://github.com/jat0824/wc.git 项目相关要求 /*--> */ /*--> */ /*--> */ /*--> */ /*--> */ /*--> */   wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。具体功能要求:程序处理用户需求的模式为: wc.exe [parameter] [file_name] PSP PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 30 · Estimate · 估计这个任务需要多少时间 700 630 Development 开发 640 590 · Analysis · 需求分析 (包括学习新技术) 90 90 · Design Spec · 生成设计文档 30 30 · Design Review · 设计复审 (和同事审核设计文档) 30 30 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 20

python 核心编程 第九章

廉价感情. 提交于 2020-03-25 05:42:52
文件的输入和输出 打开文件 使用open()或者file()这两个函数是等效的。 r 以读方式打开 rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278) w 以写方式打开 (必要时清空) a 以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+ 以读写模式打开 w+ 以读写模式打开 (参见 w ) a+ 以读写模式打开 (参见 a ) rb 以二进制读模式打开 wb 以二进制写模式打开 (参见 w ) ab 以二进制追加模式打开 (参见 a ) rb+ 以二进制读写模式打开 (参见 r+ ) wb+ 以二进制读写模式打开 (参见 w+ ) ab+ 以二进制读写模式打开 (参见 a+ ) 文件的输入输出 read() 直接读取字节到字符串,读取到给定数目的字节 readline()读取文件的一行(包括行结束符),size参数默认为-1,代表读到行结束符。 readlines()读取所有剩余行,返回一个字符串列表,参数sizhint表示返回最大字节的大小。 truncate()它接受一个可选的 size 作为参数. 如果给定, 那么文 件将被截取到最多 size 字节处. 如果没有传递 size 参数, 那么默认将截取到文件的当前位置. 例如, 你刚打开了一个文件, 然后立即调用 truncate() 方法, 那么你的文件(内容)实际上被删除,

python获取当前路径

不打扰是莪最后的温柔 提交于 2020-03-25 05:40:05
import os,sys 使用sys.path[0]、sys.argv[0]、os.getcwd()、os.path.abspath(__file__)、os.path.realpath(__file__) sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事因为Python会自动把sys.argv[0]加入sys.path。 如果你在C:\test目录下执行python getpath\getpath.py,那么os.getcwd()会输出“C:\test”,sys.path[0]会输出“C:\test\getpath”。 如果你用py2exe模块把Python脚本编译为可执行文件,那么sys.path[0]的输出还会变化: 如果把依赖库用默认的方式打包为zip文件,那么sys.path[0]会输出“C:\test\getpath\libarary.zip”; 如果在setup.py里面指定zipfile=None参数,依赖库就会被打包到exe文件里面,那么sys.path[0]会输出“C:\test\getpath\getpath.exe”。 import os,sys if __name__=="__main__": print "__file__= %s" % __file__ print print "os

模块的导入和使用

好久不见. 提交于 2020-03-25 05:37:59
一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别:    1 使用python编写的代码(.py文件)   2 已被编译为共享库或DLL的C或C++扩展   3 包好一组模块的包   4 使用C编写并链接到python解释器的内置模块 2 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的 结构更清晰,方便管理 。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中, 实现了功能的重复利用. 3.如何使用模块? 3.1 import 示例文件:自定义模块my_module.py,文件名my_module.py,模块名my_module #my_module.py print('from the my_module.py') money=1000 def read1(): print('my_module->read1->money',money) def

day19模块1

狂风中的少年 提交于 2020-03-25 05:24:46
http://www.cnblogs.com/Eva-J/articles/7228075.html#_label10 collections模块: 在内置数据类型(dict、list、set、tuple)的基础上, collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。 1.namedtuple:生成可以使用名字来访问元素内容的tuple。 #namedtuple('名称', [属性list]): from collections import namedtuple Point=namedtuple('point',['x','y']) p=Point(1,2) print(p.x,p.y) namedtuple 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象。 d eque 除了实现list的 append() 和 pop() 外,还支持 appendleft() 和 popleft() ,这样就可以非常高效地往头部添加或删除元素。 from collections import deque d1=deque([1,2,'c',5]) d1.append('afg') d1.appendleft(9) print(d1) #结果deque([9, 1, 2, 'c

常用模块

时光毁灭记忆、已成空白 提交于 2020-03-25 05:24:07
re模块常用方法:   import re   ret = re.findall('a','qas fds asfwa') #返回所有满足条件的结果,放在列表里   print(ret)  #结果:['a','a','a']   ret = re.search('a','qas fds asfwa').group() #只找到第一个符合匹配的然后返回,一定要加group返回匹配的字符串,如果没有则返回None 结果:a   ret = re.match('a','abc').group() #跟search差不多,不过只在字符串开始处进行匹配,开头不是会报错  结果:a   ret = re.split('[ab]','abcd') #先按'a'分割得到''和'bcd',在对''和‘bcd’分别按'b'分割 结果:['','','cd']   ret = re.sub('\d','H','fdsf32cs3fds1' ,2) #将数字替换成 ’H',只替换前2个值,不写则全部替换   ret = re.subn('\d','H','fdsf32cs3fds1' ) #返回的是元组,不写值替换所有   obj = re.compile('\d{3}')    #编译成一个正则表达式对象,匹配连续3个数字,可以多次调用这个对象   ret = obj.search('a324e')