我试图用python获取上个月的日期.这是我尝试过的:
str( time.strftime('%Y') ) + str( int(time.strftime('%m'))-1 )
Run Code Online (Sandbox Code Playgroud)
然而,这种方式有两个原因:首先它在2012年2月返回20122(而不是201202),其次在1月份将返回0而不是12.
我用bash解决了这个麻烦
echo $(date -d"3 month ago" "+%G%m%d")
Run Code Online (Sandbox Code Playgroud)
我认为如果bash有一个内置的方法用于此目的,那么python,更加装备,应该提供比强制编写自己的脚本来实现这个目标更好的东西.当然,我可以这样做:
if int(time.strftime('%m')) == 1:
return '12'
else:
if int(time.strftime('%m')) < 10:
return '0'+str(time.strftime('%m')-1)
else:
return str(time.strftime('%m') -1)
Run Code Online (Sandbox Code Playgroud)
我没有测试过这段代码,我也不想再使用它(除非我找不到任何其他方式:/)
谢谢你的帮助!
我想SimpleHTTPServer在一个单独的线程中启动一个,同时time.sleep(100)在主要的一个中执行其他操作(此处).以下是我的代码的简化示例:
from SimpleHTTPServer import SimpleHTTPRequestHandler
from BaseHTTPServer import HTTPServer
server = HTTPServer(('', 8080), SimpleHTTPRequestHandler)
print 'OK UNTIL NOW'
thread = threading.Thread(target = server.serve_forever())
print 'STUCK HERE'
thread.setdaemon = True
try:
thread.start()
except KeyboardInterrupt:
server.shutdown()
sys.exit(0)
print 'OK'
time.sleep(120)
Run Code Online (Sandbox Code Playgroud)
但是,该线程仍然是"阻塞",即不作为守护进程启动,并且解释器无法到达print 'OK'.它既没有达到STUCK HERE.
我已经知道线程只会在调用时被初始化,threading.Thread(...)并且主线程仍然会更进一步,直到找到thread.start启动它的指令.
有没有更好的方法来完成这项任务?
这是一个让我在过去两个小时内烦恼的问题.我有一个包含多行的模板文件,在某些行中,某些单词必须由其他一些单词更改.以下是我的模板的样子:
subnet {{ MY_SUBNET }} netmask {{ MY_NETMASK }} {}
subnet {{ MY_SUBNET }} netmask {{ MY_NETMASK }}
{
option domain-name-servers {{ MY_DOMAIN_IP }};
option domain-name {{ MY_DOMAIN_NAME }};
option routers {{ MY_GATEWAY }};
option broadcast-address {{ MY_BROADCAST }};
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码:
f = open(DHCPD_PATH, 'w')
g = open(TEMPLATE_PATH, 'r')
patterns = {
'{{ MAC_ADDRESS }}' : mac,
'{{ IP_ADDRESS }}' : ip,
'{{ MY_IP }}' : MY_IP,
'{{ MY_DOMAIN_IP }}' : MY_DOMAIN_IP,
'{{ MY_DOMAIN_NAME }}' : MY_DOMAIN_NAME,
'{{ MY_NETMASK }}' : …Run Code Online (Sandbox Code Playgroud) 我需要检查远程地址是否打开了特定的 TCP 端口。为此,我选择使用 golang。到目前为止,这是我的尝试:
func raw_connect(host string, ports []string) {
for _, port := range ports {
timeout := time.Second
conn, err := net.DialTimeout("tcp", host + ":" + port, timeout)
if err != nil {
_, err_msg := err.Error()[0], err.Error()[5:]
fmt.Println(err_msg)
} else {
msg, _, err := bufio.NewReader(conn).ReadLine()
if err != nil {
if err == io.EOF {
fmt.Print(host + " " + port + " - Open!\n")
}
} else {
fmt.Print(host + " " + port + …Run Code Online (Sandbox Code Playgroud) 我正在尝试用 midl 编译我的 arith.idl 文件。我正在运行 Windows 7 专业版。
这是我在 powershell 提示符下启动的命令:
PS> 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\midl.exe' .\arith.idl
Microsoft (R) 32b/64b MIDL Compiler Version 7.00.0555
Copyright (c) Microsoft Corporation. All rights reserved.
64 bit Processing .\arith.idl
midl : command line error MIDL1005 : cannot find C preprocessor cl.exe
PS>
Run Code Online (Sandbox Code Playgroud)
我是 Windows RPC 编程的菜鸟,非常感谢您的帮助。我已经阅读了这篇文章,但这并不能解决任何问题(相同的症状)。我还尝试使用以下命令指定预处理器 cl.exe:
PS C:\> & 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\midl.exe' /cpp_cmd 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.exe' C:\Users\$e\Desktop\MIDL\arith.idl
Microsoft (R) 32b/64b MIDL Compiler Version 7.00.0555
Copyright (c) Microsoft …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用paramiko通过SFTP下载文件.我像这样创建SFTP对象:
transport = paramiko.Transport((sftp_server, sftp_port))
transport.connect(username = sftp_login, password = sftp_password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.get("file_name", '.', None)
Run Code Online (Sandbox Code Playgroud)
而且,我得到了例外:
Exception python : Folder not found: \\$IP_ADDRESS\folder_1/folder_2\file_name.
Run Code Online (Sandbox Code Playgroud)
我正在运行paramiko连接到客户端chrooted SFTP.文件'file_name'位于客户端chroot的根目录下.
我会提供任何必要的信息.
我正在学习 C Windows RPC 编程。以下是我编写并编译且没有错误的虚拟 RPC 服务器的源代码:
#include <stdio.h>
#include "md5_h.h"
#include "rpc.h"
#include "rpcndr.h"
int main() {
RPC_STATUS status;
status = RpcServerUseProtseqEp(
(RPC_WSTR)("ncacn_ip_tcp"),
RPC_C_PROTSEQ_MAX_REQS_DEFAULT,
(RPC_WSTR)("9191"),
NULL);
if (status) { exit(status); }
status = RpcServerRegisterIf(
md5_v1_0_c_ifspec,
NULL,
NULL);
if (status) { exit(status); }
status = RpcServerListen(
1,
RPC_C_LISTEN_MAX_CALLS_DEFAULT,
FALSE);
if (status) { exit(status); }
return 0;
}
void __RPC_USER midl_user_free(void* p) {
free(p);
}
void md5(const unsigned char* szMsg) {
printf("voila %s\n", szMsg);
}
Run Code Online (Sandbox Code Playgroud)
midl 文件的编译也没有错误。MIDL 编译产生了预期的md5_s.c结果md5_c.c …
python ×4
rpc ×2
c ×1
date ×1
file ×1
go ×1
httpserver ×1
midl ×1
networking ×1
paramiko ×1
powershell ×1
sftp ×1
time ×1
windows ×1