tmp

非常简单实用的Python HTTP服务

折月煮酒 提交于 2020-02-27 14:41:21
  在做分布式系统应用的时候经常在测试环境上传一个包,或者干嘛的,公司的服务器比较bug,只给ldap权限,每次只能scp到自己的个人目录下,然后才能进到公共账号下去cp,比较麻烦。这时候如果你需要一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等。那么, Python 可能帮助到你。使用Python可以完成一个简单的内建 HTTP 服务器。于是,你可以把你的目录和文件都以HTTP的方式展示出来。只需要干一件事情,那就是安装一个Python,一般的Linux或者Mac都已经默认安装好了Python。 实际上来说,这是一个可以用来共享文件的非常有用的方式。实现一个微型的HTTP服务程序来说是很简单的事情,在Python下,只需要一个命令行。比如,你想共享一下主目录下的tmp目录,先cd到该目录,执行下面这个命令即可: cd ~/tmp python -m SimpleHTTPServer 默认是8000端口,可以指定端口,打开浏览器输入http://127.0.0.1:8080即可list出tmp目录下的所有文件。 这个命令平时敲起来还是要耗时几秒,建议加入到alias里去。 vim ~/.bash_profile alias http='python -m SimpleHTTPServer 20000' #

不用加减乘除做加法

扶醉桌前 提交于 2020-02-27 14:17:37
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路 首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2。 第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。 第三步:重复上述两步,只是相加的值变成上述两步的得到的结果2和10,得到12。 同样我们可以用三步走的方式计算二进制值相加: 5-101,7-111 第一步:相加各位的值,不算进位,得到010,二进制每位相加就相当于各位做异或操作,101^111。 第二步:计算进位值,得到1010,相当于各位做与操作得到101,再向左移一位得到1010,(101&111)<<1。 第三步: 重复上述两步, 各位相加 010^1010=1000,进位值为100=(010&1010)<<1。 继续重复上述两步:1000^100 = 1100,进位值为0,跳出循环,1100为最终结果 时间复杂度O(m),空间复杂度O(1)。 代码 public class Solution { public int Add(int num1,int num2) { //用num1保存答案,num2保存进位 int tmp = 0; while(num2 != 0) { tmp = (num1 & num2) << 1; /

linux tar

 ̄綄美尐妖づ 提交于 2020-02-27 04:50:47
tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程! -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!    例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成    『 tar -zcvPf tfile sfile』才对喔! -p :使用原文件的原来属性(属性不会依据使用者而变) -P :可以使用绝对路径来压缩! -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中! --exclude FILE:在压缩的过程中,不要将 FILE 打包! 范例: 范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar [root@linux ~]# tar -cvf /tmp/etc

tar命令

廉价感情. 提交于 2020-02-27 04:50:29
# tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件 ! c/x/t 不可同时存在! -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程! -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!    例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成    『 tar -zcvPf tfile sfile』才对喔! -p :使用原文件的原来属性(属性不会依据使用者而变) -P :可以使用绝对路径来压缩! -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中! --exclude FILE:在压缩的过程中,不要将 FILE 打包! 范例: 范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar [root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩! [root@linux ~]# tar -zcvf /tmp/etc

树-102. 二叉树的层次遍历-PYTHON

一笑奈何 提交于 2020-02-27 04:04:34
迭代法: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution ( object ) : def levelOrder ( self , root ) : """ :type root: TreeNode :rtype: List[List[int]] """ res = list ( ) if not root : return res stack = list ( ) stack . append ( root ) level = 0 while stack : res . append ( [ ] ) count = len ( stack ) for i in range ( count ) : tmp = stack . pop ( 0 ) res [ level ] . append ( tmp . val ) if tmp . left : stack . append ( tmp . left ) if tmp . right : stack . append ( tmp . right ) level +=

PAT甲级题解-1057. Stack (30)-树状数组

好久不见. 提交于 2020-02-27 04:02:58
不懂树状数组的童鞋,正好可以通过这道题学习一下树状数组~~百度有很多教程的,我就不赘述了 题意:有三种操作,分别是 1.Push key:将key压入stack 2.Pop:将栈顶元素取出栈 3.PeekMedian:返回stack中第(n+1)/2个小的数 建立一个栈来模拟push和pop,另外还需要树状数组,来统计栈中<=某个数的总个数 不了解树状数组的建议学习一下,很有用的。 树状数组为c,有个虚拟的a数组,a[i]表示i出现的次数 sum(i)就是统计a[1]~a[i]的和,即1~i出现的次数 当我要询问第k个数是多少时,那么我可以通过二分查找来找出第k个数 首先另l=min,r=max,这里min=1,max=100000,mid=(l+r)/2 如果k<=sum(mid),说明1~mid的总个数>=k,则第k个数肯定是在1~mid之间,所以r=mid 如果k>sum(mid),说明1~mid的总个数<k,则第k个数肯定是在mid~r之间,所以l=mid 最后到l与r相邻终止循环 此时如果sum(l)<k && k<=sum(r),说明第k个数即为多个r中的一个 否则的话,说明第k个数为多个l中的一个。 当执行push key的时候,update(key,1),即a[key]++,key出现的次数增加1 当执行pop的时候,update(key,-1),即a[key]--

python中axis=0和axis=1的问题记录

老子叫甜甜 提交于 2020-02-27 01:35:01
之前一直搞不清axis = 0 和 axis = 1 之间的区别,一会是按行求和,一会是按列遍历,那到底axis是咋操作的呢?查找了些资料,发现了一种很好的解释就是: 0轴垂直往下,1轴向右水平延伸。 啥意思?? 尝试一下好了 import numpy as np import pandas as pd tmp = np . random . randint ( 1 , 10 , 12 ) . reshape ( 3 , 4 ) tmp #1到10随机生成12个整数,并重组成3行4列的数组 array ( [ [ 5 , 6 , 4 , 4 ] , [ 2 , 7 , 2 , 9 ] , [ 2 , 4 , 1 , 9 ] ] ) tmp . sum ( axis = 1 ) #这里可以看出来,其实就是把每行加总了,axis = 1时向右水平延伸计算 array ( [ 19 , 20 , 16 ] ) tmp . max ( axis = 1 ) #同样的,axis = 1时,水平方向寻找最大的值 array ( [ 6 , 9 , 9 ] ) np . insert ( tmp , 1 , 0 , axis = 1 ) #同样还是按照水平方向插入值,即第二列插入一个全零的值 array ( [ [ 5 , 0 , 6 , 4 , 4 ] , [ 2 , 0 , 7 , 2 ,

Linux——文件管理常用命令

不问归期 提交于 2020-02-26 16:04:54
** 文件管理常见命令 ** 1、命令常见格式 【命令】【选项】【参数】 例子:ls -a / 根目录下所有文件 注意:-后面是简化选项 --后面是选项全称 例:-a 和 --all 其实是一样的 2、文件属性 当我们查看某一目录下文件时,ls -a /某目录 ,但是只看到文件名称,所以要想看到文件的属性采用ls -l 文件 ,命令 文件属性展示格式: 文件权限 用户,用户组 文件大小 文件更新时间 文件名称 ,五部分 文件权限 :- 代表 二进制文件 d 目录文件 l 软链接文件 后面分别代表 用户权限/用户组权限/其他权限。 用户、用户组 : 文件大小 :21553是使用的字节展示,所以必须换算,但是选项 h 可以转换为人性化展示,常配合-lh可以换算为KB/M。 文件更新时间 :切记这个不是文件的创建时间,当我们对文件操作是,时间就会改变。如果未动那么就是创建时间。 文件名称 : 3、常见命令 (1)ls 英文list的缩写,常见选项: -a :所有文件(可以看到隐藏文件多为系统文件,.开头) -l :参看参数属性 -d:目录 -h: human人性化展示。 选项是可以使用多个进行组合的-lh (2)cp 英文copy ,文件复制命令,常见选项 -r :包含目录递归复制 -p:包含文件属性,例如文件更新时间 文件复制是可以多个文件复制,cp /tmp/a /tmp/p

linux下的火狐flash 的安装

こ雲淡風輕ζ 提交于 2020-02-26 09:16:28
linux系统上用火狐浏览器看视频的时候发现没有安装flash player插件,无法播放视频。简单几步安装插件,就可以快乐地使用linux系统看视频了。 1.在下载的时候选择tar的规格下载,然后点download 2.由于这个是下载在tmp文件夹下,所以cd /tmp 进入tmp下 3.由于我的是安装在/tmp/mozilla-liuru0的目录下,所以还得进入mozilla下,解压缩 sudo tar -zx -f install_flash_player_11_linux.x86_64.tar.gz sudo cp libflashplayer.so /usr/lib/mozilla/plugins 复制插件到火狐浏览器插件文件夹 cd /usr/lib/mozilla/plugins 定位到插件目录 sudo chmod 755 libflashplayer.so 更改插件权限 4.升级完毕以后打开视频网站,这个时候会提示要你升级插件。不用理会,直接点击旁边没有文字的地方,视频就可以正常播放了 来源: https://www.cnblogs.com/future-liu1121/p/6505942.html

LGOJ4172 WC2006水管局长

拥有回忆 提交于 2020-02-26 09:09:10
首先声明,这份代码空间复杂度 \(O(n^2)\) ,瓶颈在给边打标记 由于博主太菜,懒得再改成低复杂度的打标记了,所以 \(BZOJ\) 的数据过不去 Description link 给一张图,会有删边操作,求当前图路径 \((x,y)\) 的最大边权 \(n \leq 10^3 ,m \le 10^5\) 或 \(BZOJ\) 版: \(n\le 10^5,m\le10^6\) Solution \[Begin\] 明确两点: 1.这个题要 \(LCT\) (因为有删边的操作) 2.这个题把询问离线下来,然后逆序加边更可做 这个题中LCT维护的是“边权” 这里有一个点边转化: 把每一个边拆成点,对端点连两条边(边权就是 \(e[i].dis\) ),这样就可以维护点权了,在 \(link\) 和 \(cut\) 操作中有点点不同 如下: cut(e[tmp - n].from, tmp); cut(e[tmp - n].to, tmp); link(x[i], id[x[i]][y[i]] + n); link(y[i], id[x[i]][y[i]] + n); 先给出图的最终态,然后求一个最小生成树 每个操作先打通链,也就是 \(split\) 然后对于询问操作,直接给 \(s[y]\) 对于改边的操作 每一次加边,都会在生成树上面添加一个环,然后我们找到环上最大边 \