我试图更新字典中的值,我遇到了两种方法:
product.update(map(key, value))
product.update(key, value)
Run Code Online (Sandbox Code Playgroud)
他们之间有什么区别?
我有一个简单的程序,它查找目录中的所有压缩文件夹,定位一个压缩文件,获取位于压缩文件内的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.rename和shutil.move.我一直在收到错误:
WindowsError:[错误32]由于另一个进程正在使用该进程,该进程无法访问该文件.
我不明白为什么这个错误仍然存在,因为我关闭了每个文件夹.
如果某些元素是非数字的,我想在循环内部使用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"?
如果我有几行读:
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中的第一个条目.
假设我有这样的事情:
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程序访问数据库:
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中连接?
如果我有如下字符串:
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不起作用.是什么原因?
我试图实现一个函数发生器使用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次并使用此新变量作为生成器函数来尝试使用此函数.
我怎么能纠正这个?
我试图最小化由除约束变量之外的变量组成的目标函数.有没有办法将参数传递给这样的函数,例如:
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], [], [], [], [], …
我有2个关于全局变量的问题:
global list_ex = []?我已经定义了一个我试图在函数中使用的全局变量,但是不能:
global column
def fx_foo(cols):
common = set(cols).intersection(set(column)) #Error Here!!
Run Code Online (Sandbox Code Playgroud)当我尝试访问函数内的列时,我收到一个错误:
NameError:未定义全局名称"列"
我试图用嵌套来编写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
我正在练习在 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 …
我正在编写一个快速脚本,它将更改位于目录中的每个 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将名称更改为第二个参数吗?