小编Pho*_*nix的帖子

Python - 为什么这段代码被认为是生成器?

我有一个名为'mb'的列表,其格式为:

['Company Name', 'Rep', Mth 1 Calls, Mth 1 Inv Totals, Mth 1 Inv Vol, Mth 2 
Run Code Online (Sandbox Code Playgroud)

...等等

在下面的代码中,我只需附加一个38 0的新列表.这可以.

但是在下一行中我得到一个错误:'generator'对象不支持项目分配

任何人都可以告诉我:1)如何纠正这个错误,2)为什么下面的len(mb)-1被认为是一个发电机.

注意:row [0]仅仅是另一个列表中的"公司名称".

mb.append(0 for x in range(38))
mb[len(mb)-1][0]=row[0]
Run Code Online (Sandbox Code Playgroud)

python list generator python-3.x

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

Python - os.rename() - OSError:[WinError 123]

path='U:\\rmarshall\Work For Staff\\ROB\\_Downloads Folder\\'
file='file.pdf'
newFileName=time.strftime('%Y-%m-%d_')+row[1]+time.strftime('_%H:%M:%S')+'.pdf'
newFolderLocation='U:\\Company - do not alter\\'

os.rename(path+file,newFolderLocation+newFileName)
Run Code Online (Sandbox Code Playgroud)

当我跑步时,我得到:

>>> os.rename(path+file,newFolderLocation+newFileName)

OSError: [WinError 123] The filename, directory name, or volume label syntax is 
incorrect: 'U:/Company - do not alter/2014-01-14_COMPANY NAME_13:55:23.pdf'
Run Code Online (Sandbox Code Playgroud)

任何人都可以看到语法错误?

python operating-system syntax-error python-3.x

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

Python - =和.extend for循环中的差异

参见示例,为什么=和.extend之间存在这种差异:

d1=[1,2,3]
d2=[7,8,9]
d={1:d1,2:d2}

for key,value in d.items():
    value=['a','b','c']
Run Code Online (Sandbox Code Playgroud)

输出:{1: [1, 2, 3], 2: [7, 8, 9]}

for key,value in d.items():
    value.extend(['a','b','c'])
Run Code Online (Sandbox Code Playgroud)

输出:{1: [1, 2, 3, 'a', 'b', 'c'], 2: [7, 8, 9, 'a', 'b', 'c']}

.extend似乎具有写入功能=不.我想深入研究为什么这是令人高兴的.

python for-loop extend python-3.x

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

Python - Selenium - 隐含等待多个元素

目前我使用隐式等待来定位元素,然后才对它们发出任何操作.请参阅隐式等待的示例:

WebDriverWait(browser,10).until(EC.presence_of_element_located(By.XPATH(('xpath')))
Run Code Online (Sandbox Code Playgroud)

这在处理单个元素时工作正常.但是,看起来如果xpath与多个元素相关,EC.presence_of_element_located()则会超时.我的问题是,如何隐式等待多个元素?

澄清:

单个元素 -

WebDriverWait(browser,10).until(EC.presence_of_element_located(By.XPATH(('xpath')))
browser.find_element_by_xpath('xpath')
Run Code Online (Sandbox Code Playgroud)

多元素 -

??
browser.find_elements_by_xpath('xpath')
Run Code Online (Sandbox Code Playgroud)

注意:请注意find_elements_by_xpath()在多个元素实例中使用而不是find_elements_by_xpath()

python selenium xpath python-3.x

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

通过func获取*args和**kwargs

在下面的代码中,如何在函数f中获得*args和**kwargs而不需要包装函数?

def f(func):
    def wrapper(*args, **kwargs):
        print(args)
        print(kwargs)
        return func(*args,**kwargs)
    return wrapper

@f
def write(text):
    print(text)

# write = a(write)

write('dog')
Run Code Online (Sandbox Code Playgroud)

尝试失败1:

def f(func):
    a=func(*args)
    k=func(**kwargs)
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

NameError: global name 'args' is not defined
Run Code Online (Sandbox Code Playgroud)

尝试失败2:

def f(func(*args,**kwargs)):
    a=func(*args)
    k=func(**kwargs)
Run Code Online (Sandbox Code Playgroud)

python decorator args kwargs python-3.x

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

返回属性名称和类型值的dict

NewType=type('nt',(object,),{'x':'hello'})
n=NewType()
n.x
'hello'
Run Code Online (Sandbox Code Playgroud)

我怎样{'x':'hello'}从n 获得dict ?

尝试失败: n.__bases__, n.__dir__, n.__dict__

python attributes types python-3.x

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

如何评估文件是否已关闭?

我写了以下内容:

y=open('S:\\02012014EASTERN.TXT','r').readlines()
Run Code Online (Sandbox Code Playgroud)

我不知道该文件现在是否已关闭.我该如何测试?

python file python-3.x

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

理解for循环的输出

a = [1,2,3,4,5]
b = [6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)

.

for x in a and b:
        print(x)
Run Code Online (Sandbox Code Playgroud)

产出:6 7 8 9 10

for x in a or b:
    print(x)
Run Code Online (Sandbox Code Playgroud)

输出:1 2 3 4 5

有人可以解释为什么在这两个实例中产生这个输出.

python for-loop python-3.x

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

如何使用"{0.word}"使用字符串格式

我一直在阅读Python标准库的第6部分.我来到以下字符串格式:

"Weight in tons {0.weight}"      # 'weight' attribute of first positional arg
Run Code Online (Sandbox Code Playgroud)

我不明白在.format托架中放置什么来代替weight重量.如果有人可以提供帮助,将不胜感激.

作为尝试我尝试了以下,但它失败了:

"Weight in tons {0.weight}".format({'weight':10})
Run Code Online (Sandbox Code Playgroud)

错误:

AttributeError: 'dict' object has no attribute 'weight'
Run Code Online (Sandbox Code Playgroud)

python string formatting python-3.x

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

创建可变数量的类实例

我的课:

class myClass:
    pass
Run Code Online (Sandbox Code Playgroud)

我想重新创建这个效果:

x = myClass()
y = myClass()
z = myClass()
Run Code Online (Sandbox Code Playgroud)

在for循环中,因为我需要循环的次数每次都会变化.

试试这个:

x = 3
for i in range(x):
    cls = myClass()
Run Code Online (Sandbox Code Playgroud)

不起作用,因为在每次迭代中我重新创建类实例.

我的想法是,在每个循环中,我需要创建类的副本并将其存储在dict中以进行引用.所以我的问题是:

  1. 这是正确的方法吗?
  2. 如何创建课程副本?

到目前为止,我创建课程的尝试都没有成功,因为课程并非完全是个人的.

x = deepcopy(cls)
Run Code Online (Sandbox Code Playgroud)

CopyOfCls = type('CopyOfCls', cls.__bases__, dict(cls.__dict__))
Run Code Online (Sandbox Code Playgroud)

编辑:Answerers透露,我实际上正在寻找创建多个类实例.

python copy class python-3.x

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