小编phi*_*ppe的帖子

上个月的python日期

我试图用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)

我没有测试过这段代码,我也不想再使用它(除非我找不到任何其他方式:/)

谢谢你的帮助!

python time date

111
推荐指数
8
解决办法
11万
查看次数

SimpleHTTPServer作为线程启动:不守护进程

我想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启动它的指令.

有没有更好的方法来完成这项任务?

python httpserver

10
推荐指数
1
解决办法
8465
查看次数

python替换文件行中的多个模式

这是一个让我在过去两个小时内烦恼的问题.我有一个包含多行的模板文件,在某些行中,某些单词必须由其他一些单词更改.以下是我的模板的样子:

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)

python file

4
推荐指数
1
解决办法
344
查看次数

golang检查tcp端口打开

我需要检查远程地址是否打开了特定的 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)

networking go

4
推荐指数
1
解决办法
1万
查看次数

midl 找不到 C 预处理器 cl.exe

我正在尝试用 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)

windows powershell rpc midl

3
推荐指数
1
解决办法
7458
查看次数

paramiko sftp.get

我正在尝试使用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的根目录下.

  • 我不明白为什么我有这个错误显示我的客户端服务器的完整路径(chroot外).
  • 我不知道为什么我的虚拟文件不会被下载:O

我会提供任何必要的信息.

python sftp paramiko

1
推荐指数
1
解决办法
7711
查看次数

Windows RPC编程错误:LNK 2019无法解析的外部符号RPCServerListen

我正在学习 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 …

c rpc

1
推荐指数
1
解决办法
1793
查看次数

标签 统计

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