脚本

AttributeError: 'PurePosixPath' object has no attribute 'open'

柔情痞子 提交于 2019-12-19 12:04:32
python常用地方记录 1.绝对路径 python3.4出的新功能: pathlib—面向对象的文件系统路径 拉到页面最下面可以看到与os.path映射的相同功能。 原先获取命令目录与工作目录需要导入os与sys俩模块,现在统一到pathlib.Path下; 不知道还有其他表达方式么,没有的话以后尽量用pathlib模块处理 文件路径及目录 问题了。 最基础常用的当前文件所在绝对路径,而非当前工作路径,应当予以区别: import os import sys cwd = os . getcwd ( ) # 当前工作目录 print ( cwd ) FILE_PATH = sys . path [ 0 ] # 当前文件目录 print ( FILE_PATH ) from pathlib import * # 导入pathlib的所有子包 cwd = Path . cwd ( ) # 当前工作目录 print ( cwd ) WF = Path ( __file__ ) # 当前文件 WD = WF . resolve ( ) . parent # 当前文件所在目录(当前文件绝对路径的上级目录) print ( WD ) 测试效果: [ root@ansible - server script ] # python3 dir_test.py / opt / datax /

如何捕获和分析 JavaScript Error

倾然丶 夕夏残阳落幕 提交于 2019-12-19 06:31:34
前端工程师都知道 JavaScript 有基本的异常处理能力。我们可以 throw new Error() ,浏览器也会在我们调用 API 出错时抛出异常。但估计绝大多数前端工程师都没考虑过收集这些异常信息。反正只要 JavaScript 出错后刷新不复现,那用户就可以通过刷新解决问题,浏览器不会崩溃,当没有发生过好了。这种假设在 Single Page App 流行之前还是成立的。现在的 Single Page App 运行一段时间后状态复杂无比,用户可能进行了若干输入操作才来到这里的,说刷新就刷新啊?之前的操作岂不要完全重做?所以我们还是有必要捕获和分析这些异常信息的,然后我们就可以修改代码避免影响用户体验。 捕获异常的方式 我们自己写的 throw new Error() 想要捕获当然可以捕获,因为我们很清楚 throw 写在哪里了。但是调用浏览器 API 时发生的异常就不一定那么容易捕获了,有些 API 在标准里就写着会抛出异常,有些 API 只有个别浏览器因为实现差异或者有缺陷而抛出异常。对于前者我们还能通过 try-catch 捕获,对于后者我们必须监听全局的异常然后捕获。 try-catch 如果有些浏览器 API 是已知会抛出异常的,那我们就需要把调用放到 try-catch 里面,避免因为出错而导致整个程序进入非法状态。例如说 window

初识webpack 4

不羁的心 提交于 2019-12-19 01:19:15
网上大多数是webpack 3的教程,这是自己按照webpack官网最新版,webpack 4 的简单构建过程,在此记录一下 webpack安装 首先要安装node,并选择最新的长期支持版本(LTS - Long Term Support) nodejs官网下载 全局安装 npm install -g webpack 安装到项目目录,推荐安装到本项目 npm install --save-dev webpack 正式使用webpack前的准备 1、在终端中使用npm init命令可以自动创建这个package.json文件 npm init 输入这个命令后,终端会问你一系列诸如项目名称,项目描述,作者等信息,不过不用担心,如果你不准备在npm中发布你的模块,这些问题的答案都不重要,回车默认即可。 这时,在项目文件夹中,package.json文件已经就绪 2、安装Webpack,在本项目中安装webpack作为依赖 //如果是webpack 4 版本,需要安装webpack-cli npm install webpack webpack-cli --save-dev //先安装webpack,然后安装webpack-cli 3、创建项目目录 安装完后在原来的空文件夹中包括了packjson.json文件和node_modules文件夹,现在要创建新的内容,使其目录结构如下:

HTML中script元素

こ雲淡風輕ζ 提交于 2019-12-18 11:22:03
script元素 script元素内引入JavaScript代码 包含在 <script> 中的代码将会从上到下一次解释,在解释器对 <script> 中的代码求值完毕之前, 页面中的其余内容都会不会被浏览器加载或显示 < script > function sayScript ( ) { // wrong alert ( " </ script > ") ; // right use escape character alert("<\/script>"); } </ script > 无论如何包含代码,只要不存在defer和async属性,浏览器都会按照 <script> 元素在页面中的位置进行依次解析:第一个 <script> 元素包含的代码解析完后,第二个 <script> 包含的代码才会被解析。 如果将 <script> 标签放在 <head> 中,浏览器必须等到全部的js下载、解析和执行完成后才能开始呈现页面的内容(浏览器在遇到 <body> 时才开始呈现内容,这会导致浏览器的延迟,现在一般放在 <body> 元素的后面 来源: CSDN 作者: EJoft 链接: https://blog.csdn.net/EJoft/article/details/103592082

Python, import, module

丶灬走出姿态 提交于 2019-12-18 05:46:00
When the interpreter reads a python script file, it does two things: (1) set some special variable. (2) it executes all the code from 1st line of that script file. __name__ (2 underscores before and after) is a special python variable. we can import this script as a module. and also execute this script directly that the interpreter will assign the hard-coded string "__main__" to the __name__ variable # foo.py# I am using python 3.4 print ("Befor foo function.") def foo(): print ("foo function.") print ("After foo function.") if __name__ == "__main__": foo() if we run it with $ python foo.py

Bootstrap学习(1)

半世苍凉 提交于 2019-12-17 16:44:15
文档顶部写上H5的DOCTYPE声明 head部分: <meta> (1)编码方式 (2)在IE运行最新的渲染模式 <meta http-equiv="x-ua-compatible" content="IE=edge" /> (3)适配移动端:初始化移动浏览显示 <meta name="viewport" content="width=device-width,initial-scale=1"> 让网页的宽度等于设备的宽,初始缩放比例为1,即不缩放 引入Bootstrap CSS样式 兼容IE9以下IE浏览器,添加以下代码: <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries--> <!--WARNING: Respond.js doesn't work if you view the page via file://--> <!--[if It IE 9]--> <!--<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>--> <!--<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"><

ExtJS 4.2 教程-01:Hello ExtJS

∥☆過路亽.° 提交于 2019-12-17 16:09:52
本文转载自: https://www.cnblogs.com/youring2/p/3269503.html 作者:youring2 转载请注明该声明。 转载自 起飞网 ,原文地址: http://www.qeefee.com/extjs-course-1-hello-extjs , 本文还发布在了 ExtJS教程 网站 起飞网 上面,如果转载请保留本段声明,谢谢合作。 系列ExtJS教程持续更新中,点击查看>> 最新ExtJS教程目录 ExtJS 4.2 教程-01:Hello ExtJS ExtJS 4.2 教程-02:bootstrap.js 工作方式 ExtJS 4.2 教程-03:使用Ext.define自定义类 ExtJS 4.2 教程-04:数据模型 ExtJS 4.2 教程-05:客户端代理(proxy) ExtJS 4.2 教程-06:服务器代理(proxy) ExtJS 4.2 教程-07:Ext.Direct ExtJS 4.2 教程-08:布局系统详解 关于ExtJS 是什么我就不多说了,本系列教程将介绍ExtJS 4.2的用法,这是本系列的第一篇,惯例从Hello World开始。 下载 ExtJS ExtJS 目前的最新版本是 4.2,我们可以从官方网站下载最新版本的ExtJS。 下载地址: http://cdn.sencha.com/ext/gpl

SAP Cloud Platform integration上创建一个最简单的iFlow

女生的网名这么多〃 提交于 2019-12-17 09:26:20
登录SAP CPI控制台,点击这个铅笔图标进入工作区域: 选择一个已经存在的content package: 在这个content package里创建一个新的iFlow: 默认生成的iFlow模型如下。删除Sender,因为在这个最简单的iFlow里,我们采用timer方式触发: 删除Sender后如下图所示: 选择一个Timer作为iFlow触发器: 将tinmer拖拽到integration process区域,选择Scheduler属性,设置成Run Once-运行一次。 再拖拽一个Content Modifier到integration process区域,切换到message body,维护一个Hello World: 将start timer同content modifier连接起来: 添加一个groovy script: 点击script步骤的create标签: 本地新建一个文本文件,将下列groovy代码粘贴进去,另存为test.groovy: import com.sap.gateway.ip.core.customdev.util.Message; import java.util.HashMap; def Message processData(Message message) { def body = message.getBody(java.lang

doT.js的使用

孤街浪徒 提交于 2019-12-17 07:20:48
引言 doT.js可以更好的在html端使用json数据。 {{ }} for evaluation 模板标记符 {{= }} for interpolation 输出显示,默认变量名叫it {{! }} for interpolation with encoding 编码后输出显示 {{? }} for conditionals 条件分支,if条件的简写 {{~ }} for array iteration 遍历数组 使用 引入js <script type="text/javascript" src="../script/doT.min.js"></script> <!-- jquery 移动端替代品 --> <script type="text/javascript" src="../script/zepto.min.js"></script> <!--<script type="text/javascript" src="../script/jquery.min.js"></script>--> 功能点 1.for interpolation 赋值 格式: {{= }} 数据源: {"name":"Jake","age":31} 区域: <div id="interpolation"></div> 模板: <script id="interpolationtmpl"