我知道Cythons的目的是什么.它是用类似Python的语言编写可编译的C扩展,以便在代码中产生加速.我想知道(并且似乎找不到使用我的google-fu)是因为Cython可以以某种方式编译成可执行格式,因为它似乎已经将python代码分解为C.
我已经使用了Py2Exe,它只是一个打包器,但我有兴趣使用它来编译一些有点难以解压缩的东西(任何使用Py2EXE打包的东西基本上只能使用我不想要的7zip提取)
看来,如果这是没有可能的我的下一个替代办法只是编译我的所有代码并加载它作为一个模块,然后,使用py2exe至少获得包装大多数我的代码为编译形式,对不对?
我有一段代码,我用它来搜索游戏文件的可执行文件并返回目录.我真的希望得到一些进展指标,指出有多远os.walk
.我怎么做到这样的事情?
我试着去做startpt = root.count(os.sep)
并测量它,但这只是给出os.walk
目录树中的深度.
def locate(filelist, root=os.curdir): #Find a list of files, return directories.
for path, dirs, files in os.walk(os.path.abspath(root)):
for filename in returnMatches(filelist, [k.lower() for k in files]):
yield path + "\\"
Run Code Online (Sandbox Code Playgroud) 我已经看到了很多在python中在WinXP +上检索已安装程序的方法.什么是正确的和最强大的这样的方式?
目前我正在访问HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall
并从那里读取每个键以获取列表.(我被告知这不是正确的做事方式)我已经看过使用WMI/Win32com这样做的例子,但是看到了一些注释以及那些可能在某些机器上关闭WMI的实现.这不是一个非常可靠的解决方案.
有没有一种方法可以正确,可靠地获得已安装程序的列表?我见过的所有WMI示例都没有在这台机器上运行(因此我不愿意使用它,我只运行WinFLP;这是一个剥离的XP版本.)
我似乎也发现了我的搜索已经发现的TechNet文章,该文章提供给我的问题上的类似答案:http://gallery.technet.microsoft.com/ScriptCenter/en-us/154dcae0-57a1-4c6e- 8f9f-b215904485b7 请注意,在平台下列出的Vista/7非常明确地说"不"......将无效.所以WMI的交易看起来像是不行......
能够检索已安装的路径也是一个好处,因为现在我的当前代码不会考虑在另一个驱动器或非默认目录中安装的人.
我有一个网络抓取脚本,每分钟获取一次新数据,但在几天的时间里,脚本最终使用200mb或更多的内存,我发现它是因为mechanize保留了无限的浏览器历史记录. .back()函数使用.
我查看了文档字符串,并找到了浏览器类的clear_history()函数,每次刷新时都会调用它,但每次刷新页面时仍然会获得2-3mb更高的内存使用量. 编辑:嗯,好像它在我调用clear_history之后一直做同样的事情,直到我达到大约30mb的内存使用量,然后它清理回到10mb左右(这是我的程序启动的基本内存量)用...)任何方式更经常地强制这种行为?
如何保持机械化存储所有这些信息?我不需要保留它.我想保持我的python脚本低于15mb内存使用率.
有一部分java语法可以解决我的错误:那是花括号和分号.是否存在某种允许我使用除此之外的所有Java语法的翻译器?我想做这样的事情:
public class Hello:
public static void main(String[] args):
System.out.println("I like turtles.")
public class Another:
public static void somethingelse():
System.out.println("And boobs")
Run Code Online (Sandbox Code Playgroud)
这是Python的空白作为语法模型,我已经成长为喜欢它.我相信它更清洁,更容易在眼睛上.如果它不存在,我实际上正在考虑大量投入时间来编写一个可以为我做这个的解析器.(理想情况下,它会打开它,用空格格式化,保存后,只保存为带有大括号的java语法)
这会在语言的其他地方引起问题吗?我可以期待遇到什么样的打嗝?我想要完全使用Java语法的所有其余部分,只是想要修改这个小的niggle.
我已经可以在Eclipse中编写和读取代码了.是的,我已经知道如何使用代码格式化工具和我可用的所有自动完成选项,这只是编码风格的偏好所以请不要回答"你应该学会习惯它"或"你应该使用一个支持你的IDE"......没有.我不希望这样.
除了抽象之外我知道所有这些都做了什么.我目前正在使用我认为的中学教育(我的高中是在一个糟糕的社区,因此我被选中)自学java.
但这些关键字的使用模式究竟是什么?我什么时候用?我什么时候省略它们?将'public'放在我的类前面使得每个使用它的类都需要一个新文件,如果我想创建一个单片源文件,我可以省略它吗?
我查阅的每一点信息都准确地解释了这些信息的作用,但没有清楚地说明我应该使用它们的时间/原因/位置.
提前谢谢,安东尼
目前我正在通过AutoItv3使用像素阅读器在运行直接X的程序中执行某些操作; 一个游戏.现在该程序工作正常,但作为一个练习我一直在python中重写它.现在我可以这样做:
import ImageGrab # Part of PIL
image = ImageGrab.grab() #Define an area to capture.
rgb = image.getpixel((1, 90)) #What pixel do we want?
Run Code Online (Sandbox Code Playgroud)
并且我抓住了我想要的像素信息,但我很快就完成了这项工作(需要每秒3次或更快),但结果是它主要影响这款基于DirectX的游戏的帧速率.
Python中有没有更快的方法来读取特定的屏幕像素?即使将此限制为每0.3秒运行一次也会造成比实际应用更多的压力(我实际上认为python会比AutoIt 更快用于此特定目的,因此我正在尝试它的原因)
我遇到的perlin噪声生成的每个实现都用于生成2D地形等.我无法在任何地方找到点到点闪电生成的一个很好的例子.
是否有许多其他形式的"闪电"?有人告诉我这就是我想要的.分叉闪电或二维树存在什么算法(我可以将其颠倒为闪电)
我使用多种语言,因此伪代码中的示例也可以.
在回答之前,请理解我不希望你为我做这项工作.我更愿意回答一个措辞性的答案,为什么我的(可能是理论上的)问题存在,并且解释了修复它的过程.当有人为我做这项工作时,我发现很难正确地学习.先感谢您.
我有这个功能:它完全像它正在做的那样.它使用包含facebook ID的页面中的html,并在找到后返回ID.
def getID(data): #Find an ID from HTML input.
data = str(data)
appstring = 'http://apps.facebook.com/castle_age/keep.php?user=' #We're gonna find this in the html.
appstr_start_pos = data.find(appstring) #Tell us where we found it oh mighty one!
if appstr_start_pos != -1: #If we find it.
begin_ID_pos = appstr_start_pos + len(appstring)
end_ID_pos = data.find('"', begin_ID_pos) #Find the end quote, that'll be the end of our ID string.
our_ID = data[begin_ID_pos:end_ID_pos]
return our_ID
Run Code Online (Sandbox Code Playgroud)
现在我没有把它打包在我的一个使用thread.Threading方法的类中,但我仍然经常调用它.我的代码现在只运行一个线程,我可能需要从另一个线程类调用此函数; 这可能吗?如果没有,我如何在线程类之间使用此函数?
一个更简单的问题形式:如果我从多线程环境调用此函数,我会遇到问题,还是需要将其移动到自己的类中?有没有办法在两个不同的线程对象之间保持函数可用(如果是这样,最简单的方法是什么)?
以下是完整的代码:http://pastebin.com/txH8PvL3 - 请记住它是一个WIP,作为学习线程的练习......
我有这个代码:
def GetSteamAccts(): #Get list of steam logins on this computer.
templist = []
Steamapp_Folders = ["C:\\Program Files (x86)\\Steam\\steamapps\\", "C:\\Program Files\\Steam\\steamapps\\"] #Check both of these directories.
for SF_i in range(len(Steamapp_Folders)):
if os.path.exists(Steamapp_Folders[SF_i]): #If the directory even exists...
Steam_AppDir_Items = os.listdir(Steamapp_Folders[SF_i]) #List items under steam install directory.
for S_AD_i in range(len(Steam_AppDir_Items)): #Make sure the user doesn't have any files in here...
if os.path.isdir(Steamapp_Folders + Steam_AppDir_Items[S_AD_i]): #If our path is a directory...
templist.append(Steam_AppDir_Items[S_AD_i]) #Add it to our list of logins.
#(If some …
Run Code Online (Sandbox Code Playgroud)