小编Max*_*Kim的帖子

Python字典中的更新方法

我试图更新字典中的值,我遇到了两种方法:

product.update(map(key, value))

product.update(key, value)
Run Code Online (Sandbox Code Playgroud)

他们之间有什么区别?

python dictionary

27
推荐指数
2
解决办法
8万
查看次数

错误32,Python,另一个进程正在使用的文件

我有一个简单的程序,它查找目录中的所有压缩文件夹,定位一个压缩文件,获取位于压缩文件内的excel文件并将其移动到另一个位置(它为每个excel文件执行此操作,对于有多少压缩文件文件夹):

path = 'C:\Users\me\Documents\Extract'
new_path = 'C:\Users\me\Documents\Test'
i = 0
for folder in os.listdir(path):
        path_to_folder = os.path.join(path, folder)

        zfile = zipfile.ZipFile(os.path.join(path, folder))
        for name in zfile.namelist():
            if name.endswith('.xls'):
                new_name = str(i)+'_'+name
                new_path = os.path.join(new_path, new_name)
                zfile.close()
                #os.rename(path_to_folde, new_path) -- ERROR HERE
                shutil.move(path_to_folde, new_path) -- AND ERROR HERE
        i += 1
Run Code Online (Sandbox Code Playgroud)

我试过两种方法来移动excel文件os.renameshutil.move.我一直在收到错误:

WindowsError:[错误32]由于另一个进程正在使用该进程,该进程无法访问该文件.

我不明白为什么这个错误仍然存​​在,因为我关闭了每个文件夹.

python

12
推荐指数
2
解决办法
4万
查看次数

Lambdas Python for循环

如果某些元素是非数字的,我想在循环内部使用lambdas返回:

strs = ['1234', 'hello', '6787']
Run Code Online (Sandbox Code Playgroud)

我可以使用for循环并遍历每个元素:

for elem in strs:
Run Code Online (Sandbox Code Playgroud)

并检查elem.islpha().

但是,有没有办法使用lambdas耦合for循环来返回单词"hello"

python lambda

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

提取数字数据Python

如果我有几行读:

1,000 barrels
5 Megawatts hours (MWh)
80 Megawatt hours (MWh) (5 MW per peak hour).
Run Code Online (Sandbox Code Playgroud)

捕获数字元素(即第一个实例)和第一个括号(如果存在)的最佳方法是什么.

我目前的方法是使用split for string ' '. and str.isalpha来查找非alpha元素.但是,不确定如何获得parantheses中的第一个条目.

python

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

从标签之间提取文本的有效方法

假设我有这样的事情:

var = '<li> <a href="/...html">Energy</a>
      <ul>
      <li> <a href="/...html">Coal</a> </li>
      <li> <a href="/...html">Oil </a> </li>
      <li> <a href="/...html">Carbon</a> </li>
      <li> <a href="/...html">Oxygen</a> </li'
Run Code Online (Sandbox Code Playgroud)

在标签之间提取文本的最佳(最有效)方法是什么?我应该使用正则表达式吗?我当前的技术依赖于在li标签上拆分字符串并使用for循环,只是想知道是否有更快的方法来执行此操作.

python regex extract

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

Python MySQL OperationalError:1045,"访问被拒绝用户root @'localhost'

我试图通过以下方式从我的python程序访问数据库:

db = mysql.connect(host = 'localhost', user = 'Max', passwd = 'maxkim', db = 'TESTDB')
cursor = db.cursor()
Run Code Online (Sandbox Code Playgroud)

但是,我在第一行代码中收到错误消息.

OperationalError: (1045, "Access denied for user 'Max'@'localhost' (using password: YES)")
Run Code Online (Sandbox Code Playgroud)

为了纠正这种情况,我做了以下事情:

$ mysql -u Max-p
Enter password: maxkim

mysql> create database TESTDB;
mysql> grant usage on *.* to Max@localhost identified by ‘maxkim’;
mysql> grant all privileges on TESTDB.* to Max@localhost ;
mysql> exit
Run Code Online (Sandbox Code Playgroud)

如果我已经为用户"Max"(我)授予了对数据库的所有访问权限,为什么我仍然无法在python中连接?

python mysql

4
推荐指数
1
解决办法
3万
查看次数

用于循环python多重检查

如果我有如下字符串:

my_string(0) = Your FUTURE looks good.
my_string(1) = your future doesn't look good.
Run Code Online (Sandbox Code Playgroud)

我想用以下内容打印两行:

for stings in my_string:
   if 'FUTURE' or 'future' in string:
      print 'Success!'
Run Code Online (Sandbox Code Playgroud)

我的if循环适用于第一个条件FUTURE,但是,第二个比较future不起作用.是什么原因?

python

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

函数生成器Python

我试图实现一个函数发生器使用n次.我的想法是创建一个生成器对象,然后将该对象分配给另一个变量,并将重新分配的变量作为函数调用,例如:

def generator:
   [...]
   yield ...

for x in xrange(10):
   function = generator
   print function(50)
Run Code Online (Sandbox Code Playgroud)

当我调用print函数时,我发现function(50)没有调用它.相反,输出是:<generator object...>.我试图通过将此函数分配给生成器函数10次并使用此新变量作为生成器函数来尝试使用此函数.

我怎么能纠正这个?

python generator

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

将参数传递给目标函数fmincon Matlab

我试图最小化由除约束变量之外的变量组成的目标函数.有没有办法将参数传递给这样的函数,例如:

data = xlsread('Returns.xlsx', 'Sheet2','A2:F324');

for i = 1:10
    returns = data(i:i+59,1:5);
    fund = data(i:i+59,6:6);
    lb = [0;0;0;0;0];
    ub = [1; 1; 1; 1; 1];
    [betas, fval] = fmincon(@obj_function, [0 .2 .2 .2 .2 .2], [], [], [], [], lb, ub, @constraints);
end
Run Code Online (Sandbox Code Playgroud)

目标函数定义为:

function [ value ] = obj_function(betas)
    value = returns*betas(2:6) + betas(1);
    value = sum((value - fund)^2);
end
Run Code Online (Sandbox Code Playgroud)

由于我的目标函数需要额外的变量,returns并且fund我可以继续从主函数传递它的最佳方法是什么?以下陈述无效,我还能做什么?

[betas, fval] = fmincon(@obj_function(returns, fund), [.2 .2 .2 .2 .2], [], [], [], [], …

matlab function mathematical-optimization

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

声明全局变量

我有2个关于全局变量的问题:

  1. 为什么我不能将列表声明为全局变量:global list_ex = []
  2. 我已经定义了一个我试图在函数中使用的全局变量,但是不能:

    global column
    
    def fx_foo(cols):
        common = set(cols).intersection(set(column)) #Error Here!!
    
    Run Code Online (Sandbox Code Playgroud)

当我尝试访问函数内的列时,我收到一个错误:

NameError:未定义全局名称"列"

python global-variables

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

带有和SAS的SQL select语句

我试图用嵌套来编写SQL select语句and来获取一些数据:

PROC SQL;

CREATE TABLE WORK.TEMP AS

SELECT DISTINCT

(CASE WHEN t1.TYPE_OF_SALE = 'Cake' AND t1.ADD_ON_FLAG = 0 THEN 'Arrangements'

WHEN t1.TYPE_OF_SALE = 'Cake' AND t1.ADD_ON_FLAG = 1 THEN 'Add-ons'

ELSE 'Direct' END) SALE_TYPE, #ERROR IN THIS LINE


(t1.UNIT_PRICE+t1.SERVICE_CHARGE_AMT) AS TOTAL_VAL

FROM WORK.FB_ORDERS t1

ORDER BY SALE_TYPE;

QUIT;
Run Code Online (Sandbox Code Playgroud)

我由于某种原因,得到一个错误在我的第一线,是不是可以使用and一个case statement

Error Message:
Error 22-322: Syntax error, expecting one of the following: !,!!,&...
Run Code Online (Sandbox Code Playgroud)

这个错误存在于最后 case statement

sql sas

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

使用 python 生成器函数

我正在练习在 python 中使用生成器函数,所以我定义了一个函数,如下所示:

def MySQL_product():
   #Establish connection to database
   try:
       connection = msql.connect(host = 'localhost', user = 'max', passwd = 'password', db = 'schools')
   except:
       pass

   #Iterate through each product and insert them in database
   with connection:
       cursor = connection.cursor()
       cursor.execute("SELECT name, age, gender, school
                    WHERE GroupId = 'student' AND Exchange = 'foreign'")
       for product in cursor.fetchall():
           yield product

def main():
    for column in range (0, number_of_schools):
        for product in MySQL_product():
            print product
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,我看到的所有输出都是generator object at ...我试图打印在数据库中找到的内容。此外,print …

python generator

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

使用 os.rename() Python 重命名 excel 文件

我正在编写一个快速脚本,它将更改位于目录中的每个 excel 文件的名称:

[...]
for file_ in os.listdir(path):
   if 'Analytics Android' in file_:
      os.rename(file_, 'Android Orders.xlsx')
Run Code Online (Sandbox Code Playgroud)

但是,我收到一个错误:函数[Error 2] The system cannot find the file specified.不应该rename将名称更改为第二个参数吗?

python

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