我需要通过将其转换为数组来访问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 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) 我正在尝试用 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) 我有一个基于ctypes的库,它包装了一个C库,有时会分配需要释放的内存.在Linux下这很容易,因为常见的glibc功能已链接到该C库中,我可以简单地调用free()它.但是,当我在Windows下访问第三方编译的库时,看起来无法使用相同的功能.
ctypes.util.find_msvcrt()看起来很有希望,但即使我在Windows下运行,它也会返回None.我不确定这是否意味着源DLL是使用Microsoft工具链之外的其他东西构建的.
所以,我留下的记忆是自由的,没有明显的,简单的方法来做到这一点.有没有人有任何想法?
我花了很多时间试图弄清楚这一点,但我感到非常沮丧。
我想要做的就是查看文件是否存在(确实存在),然后重命名它。我在 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 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)
有什么建议么?
背景信息(基于我的第一个问题):我想在我的"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中的特定设置是否必须配置.
提前感谢您的支持.
我试图隐藏从 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 ×6
windows ×6
cmd ×3
ctypes ×2
c ×1
c# ×1
clock ×1
command-line ×1
glibc ×1
if-statement ×1
integration ×1
pandas ×1
python-3.5 ×1
shell ×1
shutil ×1
sleep ×1
spyder ×1
time ×1