当我运行python工具通过读取xml文件创建xls文件时,我得到了以下错误.我如何解决它?
ValueError: row index (65536) not an int in range(65536)
File "D:\Zipfiles\Script_try.py", line 82, in _execute_test
self.parser = parser()
File "D:\Zipfiles\Script_try.py", line 216, in __init__
self._xml_parser()
File "D:\Zipfiles\Script_try.py", line 306, in _xml_parser
sheet1.write(row,1,[test_x.attrib['name']],centr)
File "C:\Python26\lib\site-packages\xlwt\Worksheet.py", line 1030, in write
self.row(r).write(c, label, style)
File "C:\Python26\lib\site-packages\xlwt\Worksheet.py", line 1078, in row
self.__rows[indx] = self.Row(indx, self)
File "C:\Python26\lib\site-packages\xlwt\Row.py", line 42, in __init__
raise ValueError("row index (%r) not an int in range(65536)" % rowx)
ValueError: row index (65536) not an int in range(65536)
Run Code Online (Sandbox Code Playgroud) 我是整个编码的新手...所以这里.只是想写一个简单的猜数游戏,还要做输入验证.因此只接受整数作为输入.我已经弄清楚如何清除字母字符,所以我可以将数字转换为整数.当我输入一个浮点数时,我遇到了麻烦.我无法让它将浮点数转换为整数.任何帮助表示赞赏.正如我所说,我正在谈论这个编码的第3天,所以试着理解我的小知识.提前致谢.
这是我的主程序的功能.
def validateInput():
while True:
global userGuess
userGuess = input("Please enter a number from 1 to 100. ")
if userGuess.isalpha() == False:
userGuess = int(userGuess)
print(type(userGuess), "at 'isalpha() == False'")
break
elif userGuess.isalpha() == True:
print("Please enter whole numbers only, no words.")
print(type(userGuess), "at 'isalpha() == True'")
return userGuess
Run Code Online (Sandbox Code Playgroud)
如果我使用4.3(或任何浮点数)作为输入,这是我得到的错误.
Traceback (most recent call last):
File "C:\\*******.py\line 58, in <module>
validateInput()
File "C:\\*******.py\line 28, in validateInput
userGuess = int(userGuess)
ValueError: invalid literal for int() with base 10: '4.3'
Run Code Online (Sandbox Code Playgroud) 我认为pat1 ='[ab]'和pat2 ='a | b'在Python(python2.7,windows)'re'模块中具有与正则表达式模式相同的功能.但是我对'[ab] +'和'(a | b)+'感到困惑,它们是否具有相同的功能,如果没有,你可以解释细节.
'''
Created on 2012-9-4
@author: melo
'''
import re
pat1 = '(a|b)+'
pat2 = '[ab]+'
text = '22ababbbaa33aaa44b55bb66abaa77babab88'
m1 = re.search(pat1, text)
m2 = re.search(pat2, text)
print 'search with pat1:', m1.group()
print 'search with pat2:', m2.group()
m11 = re.split(pat1, text)
m22 = re.split(pat2, text)
print 'split with pat1:', m11
print 'split with pat2:', m22
m111 = re.findall(pat1, text)
m222 = re.findall(pat2, text)
print 'findall with pat1:', m111
print 'findall with pat2:', m222 …Run Code Online (Sandbox Code Playgroud) 阅读Guido对于使用Python在2MB RAM中排序一百万个32位整数的问题的臭名昭着的答案,我发现了模块heapq.
我也发现我不了解杰克,也不知道我能用它做什么.
你能解释一下(用众所周知的6年目标)什么是堆队列算法以及你可以用它做什么?
你能提供一个简单的 Python片段heapq吗?使用它(使用模块)解决了一个问题,这个问题可以用它来解决,而不是用别的东西解决?
我正在尝试使用BS和Selenium抓取一个JavaScript启用页面.到目前为止,我有以下代码.它仍然不会以某种方式检测JavaScript(并返回一个空值).在这种情况下,我试图在底部刮掉Facebook的评论.(Inspect元素将类显示为postText)
感谢您的帮助!
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import BeautifulSoup
browser = webdriver.Firefox()
browser.get('http://techcrunch.com/2012/05/15/facebook-lightbox/')
html_source = browser.page_source
browser.quit()
soup = BeautifulSoup.BeautifulSoup(html_source)
comments = soup("div", {"class":"postText"})
print comments
Run Code Online (Sandbox Code Playgroud) 我在哪里可以找到os.urandom上的完整教程或文档?我需要得到一个随机的int来从一个80字符串的字符串中选择一个字符
我在aser aspire 5920上运行Ubuntu 12.04
在win 7上,我可以通过命令行与国际象棋引擎进行通信.Win 7 上与Stockfish的小例子会话:
C:\run\Stockfish>stockfish-x64.exe
Stockfish 2.2.2 JA SSE42 by Tord Romstad, Marco Costalba and Joona Kiiski
quit
C:\run\Stockfish>
Run Code Online (Sandbox Code Playgroud)
第一行由引擎输出,'quit'是我输入的退出引擎(我还可以做其他事情,但这对我来说很清楚).
现在我想从python与该引擎通信:
import subprocess
engine = subprocess.Popen(
'stockfish-x64.exe',
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
)
for line in engine.stdout:
print(line.strip())
engine.stdin.write('quit\n')
Run Code Online (Sandbox Code Playgroud)
我明白了
C:\run\Stockfish>communicate.py
b'Stockfish 2.2.2 JA SSE42 by Tord Romstad, Marco Costalba and Joona Kiiski'
Run Code Online (Sandbox Code Playgroud)
但它没有退出引擎(没有C:\ run\Stockfish>提示),它一直在等待输入.我必须手动关上窗户.似乎没有把我的退出消息(python脚本的最后一行)写入stdin.
换句话说,我可以从stdout读取,但是当我写入stdin时,没有任何事情发生.
我做错了什么,怎么做对了?
编辑:好的,感谢larsmans的帮助我解决了它:
示例Python脚本:
import subprocess, time
engine = subprocess.Popen(
'stockfish-x64.exe',
universal_newlines=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
)
def put(command):
print('\nyou:\n\t'+command)
engine.stdin.write(command+'\n')
def get():
# using the …Run Code Online (Sandbox Code Playgroud) 我有一个实用程序类,使得Python字典在获取和设置属性方面的行为有点像JavaScript对象.
class DotDict(dict):
"""
a dictionary that supports dot notation
as well as dictionary access notation
usage: d = DotDict() or d = DotDict({'val1':'first'})
set attributes: d.val2 = 'second' or d['val2'] = 'second'
get attributes: d.val2 or d['val2']
"""
__getattr__ = dict.__getitem__
__setattr__ = dict.__setitem__
__delattr__ = dict.__delitem__
Run Code Online (Sandbox Code Playgroud)
我想这样做它也将嵌套的字典转换成DotDict()实例.我希望能够做这样的事有__init__或__new__,但我还没有拿出任何的工作原理:
def __init__(self, dct):
for key in dct.keys():
if hasattr(dct[key], 'keys'):
dct[key] = DotDict(dct[key])
Run Code Online (Sandbox Code Playgroud)
如何递归地将嵌套字典转换为DotDict()实例?
>>> dct = {'scalar_value':1, 'nested_dict':{'value':2}}
>>> dct = DotDict(dct)
>>> print dct
{'scalar_value': …Run Code Online (Sandbox Code Playgroud) 似乎在OS X 10.8(使用Python 2.7)上,.pyc即使您设置了环境变量,也会创建文件PYTHONDONTWRITEBYTECODE=1
如何防止这种情况发生,或者我如何说服Python不要在与源文件相同的位置创建这些文件.
我正在使用Python 2.7.3.我使用子类multiprocessing.Process对象并行化了一些代码.如果我的子类Process对象中的代码没有错误,那么一切运行正常.但是,如果有在我的子类的过程对象代码中的错误,他们显然会崩溃默默(没有堆栈跟踪打印到父shell)和CPU使用率将下降到零.父代码永远不会崩溃,给人的印象是执行只是挂起.同时,很难追踪代码中的错误,因为没有给出关于错误位置的指示.
我在stackoverflow上找不到任何其他问题来处理同样的问题.
我想子类化的Process对象似乎是静默崩溃的,因为它们无法向父shell发送错误消息,但我想知道我能做些什么,这样我至少可以更高效地调试(以及其他我的代码的用户可以告诉我他们何时遇到问题).
编辑:我的实际代码过于复杂,但在它的错误的子类的处理对象的一个简单的例子是这样的:
from multiprocessing import Process, Queue
class Worker(Process):
def __init__(self, inputQueue, outputQueue):
super(Worker, self).__init__()
self.inputQueue = inputQueue
self.outputQueue = outputQueue
def run(self):
for i in iter(self.inputQueue.get, 'STOP'):
# (code that does stuff)
1 / 0 # Dumb error
# (more code that does stuff)
self.outputQueue.put(result)
Run Code Online (Sandbox Code Playgroud) python ×10
python-2.7 ×4
python-3.x ×3
chess ×1
dictionary ×1
macos ×1
process ×1
pyc ×1
random ×1
recursion ×1
regex ×1
selenium ×1
xlwt ×1