小编Ery*_*Sun的帖子

将c_char_p转换为c_char数组

我需要通过将其转换为数组来访问char*的内容

这是一个演示:

from ctypes import *

foo = (c_char * 4)()
foo.value = "foo"
print foo.raw # => 'foo\x00'
foo_ptr = cast(foo, c_char_p)
print foo_ptr.value # => 'foo'
Run Code Online (Sandbox Code Playgroud)

现在我想将foo_ptr转换回(c_char*4).这些都不奏效

foo_ = (c_char * 4)(foo_ptr)
foo_ = cast(foo_ptr, c_char * 4)
Run Code Online (Sandbox Code Playgroud)

python ctypes

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

Python 2.x - Windows 上毫秒级的睡眠调用

我在这个论坛上得到了一些关于如何在 Python 2 中编写时钟对象的很好的提示。我现在有一些代码可以工作。这是一个以 60 FPS“滴答”的时钟:

import sys
import time

class Clock(object):

    def __init__(self):

        self.init_os()
        self.fps = 60.0
        self._tick = 1.0 / self.fps
        print "TICK", self._tick
        self.check_min_sleep()
        self.t = self.timestamp()

    def init_os(self):

        if sys.platform == "win32":
            self.timestamp = time.clock
            self.wait = time.sleep

    def timeit(self, f, args):

        t1 = self.timestamp()
        f(*args)
        t2 = self.timestamp()
        return t2 - t1

    def check_min_sleep(self):
        """checks the min sleep time on the system"""

        runs =  1000
        times = [self.timeit(self.wait, (0.001, )) for n in xrange(runs)]
        average …
Run Code Online (Sandbox Code Playgroud)

python windows time sleep clock

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

Python:读取带括号/长路径名的文件名时出现问题

我正在尝试用 pandas 读取 Excel 文件。

df=pd.read_excel('abcd (xyz-9) Interim Report 01-03-18.xlsx')
Run Code Online (Sandbox Code Playgroud)

这给了我文件未找到错误。如果我删除括号并将文件重命名为'abcd Interim Report 01-03-18.xlsx',那么它就可以正常工作。

我尝试用shutil重命名,但它给了我同样的错误

shutil.copyfile('abcd (xyz-9) Interim Report 01-03-18.xlsx','test.xlsx')
Run Code Online (Sandbox Code Playgroud)

我试过

1. pd.read_excel('abcd ^(xyz-9) Interim Report 01-03-18.xlsx')
2. pd.read_excel('abcd \\(xyz-9\\) Interim Report 01-03-18.xlsx')
Run Code Online (Sandbox Code Playgroud)

编辑:

即使我将 cwd 更改为文件位置,该文​​件似乎可以在本地驱动器上运行,但不能在网络驱动器上运行。

关于使用 glob 和os.path.exists

df=pd.read_excel('abcd (xyz-9) Interim Report 01-03-18.xlsx')
Run Code Online (Sandbox Code Playgroud)
shutil.copyfile('abcd (xyz-9) Interim Report 01-03-18.xlsx','test.xlsx')
Run Code Online (Sandbox Code Playgroud)

关于使用 glob 和os.stat

1. pd.read_excel('abcd ^(xyz-9) Interim Report 01-03-18.xlsx')
2. pd.read_excel('abcd \\(xyz-9\\) Interim Report 01-03-18.xlsx')
Run Code Online (Sandbox Code Playgroud)
for i in range(0,1):
    for filename in glob.glob(fpath+"\\"+ldir[i]+"\\"+"*Interim*.xlsx"):
        print(filename) …
Run Code Online (Sandbox Code Playgroud)

python windows shutil pandas spyder

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

释放通过Python中的ctypes分配的内存

我有一个基于ctypes的库,它包装了一个C库,有时会分配需要释放的内存.在Linux下这很容易,因为常见的glibc功能已链接到该C库中,我可以简单地调用free()它.但是,当我在Windows下访问第三方编译的库时,看起来无法使用相同的功能.

ctypes.util.find_msvcrt()看起来很有希望,但即使我在Windows下运行,它也会返回None.我不确定这是否意味着源DLL是使用Microsoft工具链之外的其他东西构建的.

所以,我留下的记忆是自由的,没有明显的,简单的方法来做到这一点.有没有人有任何想法?

c python windows ctypes glibc

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

查看文件是否存在并使用 Windows 命令行重命名

我花了很多时间试图弄清楚这一点,但我感到非常沮丧。

我想要做的就是查看文件是否存在(确实存在),然后重命名它。我在 Windows 10 的命令行中工作。

IF exist C:\content\info.txt (
    ren "C:\content\info.txt" "C:\content\info_new.txt"
) ELSE (
    echo "Couldn't find file."
)
Run Code Online (Sandbox Code Playgroud)

我不断收到错误“命令的语法不正确”。我知道该文件存在,因为我之前运行了以下内容。

if exist C:\content\info.txt echo "info.txt is in C:\content\info.txt."
Run Code Online (Sandbox Code Playgroud)

我将所有这些直接输入到命令提示符中,而不是从 .bat 文件中调用它。我在这里错过了什么吗?任何帮助,将不胜感激。

windows shell command-line cmd if-statement

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

在Windows 7 CMD中等待多个Python进程完成

我正在尝试在Windows 7(和10)中并行运行多个Python脚本。我正在从另一个Python脚本运行所有脚本,该脚本在脚本正在编辑的文件上执行更多功能。我希望外部脚本要等到其他脚本运行完毕。我已经尝试过了start /w,但是这使得每个脚本都在关闭控制台窗口之前等待。

本质上,我想做的是让Python等待3个进程完成。最后一个脚本只是一个print("done"),对我而言,这毫无意义。这对于我用3个进程来解决很重要,因为我需要对30个进程执行相同的操作。(在服务器上,有足够的可用线程。)

这是我要运行的CMD命令。

os.system("start python node1.py & start python node2.py & start python node3.py && start /w printstatement.py")
Run Code Online (Sandbox Code Playgroud)

有什么建议么?

python windows parallel-processing cmd

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

如何将c#help集成到控制台应用程序中

背景信息(基于我的第一个问题):我想在我的"GUI.exe"(用c#编写)中集成一个帮助功能.然后当我想在我的cmd中启动 - >"GUI.exe --h"的帮助功能.

尝试了stackoverflow-帖子:我尝试使用这个解决方案:在C#控制台应用程序中添加"--help"参数.

static bool ShowHelpRequired(IEnumerable<string> args)
{
    return args.Select(s => s.ToLowerInvariant())
        .Intersect(new[] { "help", "/?", "--help", "-help", "-h" }).Any();
}
Run Code Online (Sandbox Code Playgroud)

目前的问题:

我不知道在哪里可以集成帮助功能.我不知道我的Microsoft Visual Studio中的特定设置是否必须配置.

提前感谢您的支持.

c# integration cmd windows-console

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

通过 .py 脚本执行的 .exe 文件隐藏控制台窗口

我试图隐藏从 EXE 文件弹出的控制台窗口。我正在从我自己的 EXE(通过 PyInstaller 冻结的 Python 脚本)运行这个 EXE。

我发现,每当我通过 IDLE 或 PyCharm 运行脚本时,我都可以隐藏控制台窗口,并且一切正常。但是,如果我将脚本转换为 EXE(使用pyinstaller --onefile),则它不起作用。

我尝试了几乎所有 Google 和 SO 对我对这个问题的搜索的响应,但我仍然不知道如果我将脚本转换为 EXE 文件并运行它,我该如何隐藏控制台窗口。

我试过的最后一个:

import subprocess
import win32gui
import time

proc = subprocess.Popen(["MyExe.exe"])
# lets wait a bit to app to start
time.sleep(3)

def enumWindowFunc(hwnd, windowList):
    """ win32gui.EnumWindows() callback """
    text = win32gui.GetWindowText(hwnd)
    className = win32gui.GetClassName(hwnd)
    #print hwnd, text, className
    if text.find("MyExe.exe") >= 0:
        windowList.append((hwnd, text, className))

myWindows = []
# enumerate thru all top windows and get …
Run Code Online (Sandbox Code Playgroud)

python windows windows-console python-3.5

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