社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Paritosh Singh

Paritosh Singh 最近创建的主题
Paritosh Singh 最近回复了
6 年前
回复了 Paritosh Singh 创建的主题 » ` require”:无法加载此类文件-mysql2/mysql2

因为你在使用 bundle exec 它只考虑宝石 存在于gemfile中,所以需要放在那里。

包括

gem mysql2 

在您的gemfile中(位于项目的根目录中)

那就跑吧

bundle install

然后你就可以跑了

bundle exec rails s
6 年前
回复了 Paritosh Singh 创建的主题 » python-yield和raise异常

好吧,那么先解决几个问题。
1。解包对单个值不起作用,它试图用尽iterable并立即解包所有内容。

def func():
#    ..do something...
    yield 1, 2
    yield 3
    yield 4

a, b = func() #ValueError: too many values to unpack (expected 2)
a, b, c, d = func() #ValueError: not enough values to unpack (expected 4, got 3)
a, b, c = func() #Works
print(a) # (1,2)

2.yield在遇到时停止执行。

def func():
    yield 1, 2
    raise Exception

func_gen = func()
print(func_gen) #<generator object func at 0x000000ACB5A5EBF8>
val1, val2 = next(func_gen) #assigns values
next(func_gen) #raises exception only on next pass

3.必须做出妥协(这应该能回答你的要求)

func_gen = func()
print(func_gen) #<generator object func at 0x000000ACB5A5EBF8>
for _ in func_gen:
    res = _
#raises Exception but res = (1, 2)

4.一个建议(请不要使用异常,这确实是一项针对if条件的工作)

def func():
  var1 = 0
  var2 = 1
  flag = not var1 > var2
  yield var1, var2, flag #just add a flag during yield
  #instead of your exception
#  if not var1 > var2:
#    raise Exception(var1,var2)  
  #stuff
  yield 'something else'
func_gen = func()
print(func_gen) #<generator object func at 0x000000ACB5A5EBF8>
for _ in func_gen:
    res = _
    *values, flag = res
    if flag:
        break
var1,var2 = values #0, 1
  1. 最后但并非最不重要的是,确保你真的需要收益率,就目前的情况来看,我怀疑这个函数既难以阅读,也可能值得拆分成更小的模块。我强烈建议您再看一眼代码,如果可能的话,可以考虑进一步破坏它。
6 年前
回复了 Paritosh Singh 创建的主题 » 用python区分特定格式的文本

您可能一直在寻找的格式化短语可以称为模式匹配,或者 regex .

如果所有其他方法都失败了,那么您应该始终能够使用regex找到一个部分的结尾来解决这个问题。 请注意,使用可以将数据导入panda或类似的、易于管理的逻辑来跟踪此代码可能仍然是明智的。 如果你想调整这个正则表达式,我发现 regex101.com 非常有用。希望这有帮助。

import re    
#matches the pattern UPPERCASE,SPACE followed by (UPPERCASE, SPACE) repeated, 
#followed by TWO SPACE optional
#whole pattern can be repeated. 
#You may want to tweak the rules to make it more strict as necessary.

pattern = re.compile("(([A-Z] )([A-Z] )+(  )?)+")

test = '''                                         D I S P L A C E M E N T   V E C T O R

  POINT ID.   TYPE          T1             T2             T3             R1             R2             R3
    158819      G      1.709110E-04   7.605540E-16  -1.555717E-15  -4.860894E-18   1.829865E-03  -2.318361E-02
    158820      G      1.875926E-04   7.603908E-16  -1.382438E-15   2.883937E-18   3.121088E-04   2.332622E-02
    158821      G      1.275168E-04   6.281925E-16  -1.472595E-15  -1.425970E-17   4.282258E-03  -1.669750E-02
    158822      G      1.712281E-04   7.267596E-16  -1.473447E-15  -2.136693E-18   1.425850E-03   2.210620E-02
    158823      G      1.010464E-04   5.633097E-16  -1.426041E-15  -3.498301E-17   4.969753E-03  -1.144002E-02
    158824      G      1.274082E-04   6.164795E-16  -1.567410E-15  -5.947361E-18   3.224372E-03   1.580865E-02
                                                 L O A D   V E C T O R

  POINT ID.   TYPE          T1             T2             T3             R1             R2             R3
    158801      G      1.175810E+02  -3.610042E-16  -2.782717E-12   0.0            0.0            0.0
    158802      G      8.539756E+01   1.118419E-15  -2.639934E-12   0.0            0.0            0.0
    158803      G      9.717072E+01  -7.574143E-16  -2.682750E-12   0.0            0.0            0.0
    158804      G      1.175825E+02   0.0           -2.986422E-12   0.0            0.0            0.0'''

#your input for beginning of a section header    
begin = 'displacement vector'
#getting it into the correct style laid out here for section headers.
begin = ' '.join(begin.upper()) 
location = test.find(begin)

if location != -1:
    relevant_section = test[location + len(begin):]
else:
    relevant_section = test
#regex matching for end of section
end = pattern.search(relevant_section)
if end is not None:
    end = end.span()[0]
    relevant_section = relevant_section[:end]
6 年前
回复了 Paritosh Singh 创建的主题 » python 2.7.4,无止境循环,poolexecutor实现时没有输出

docs

这个 主要的 工作子进程必须可导入模块。这个 意味着processpoolexecutor将不能在交互式 解释器。

在windows中创建进程的方式有问题,这意味着您需要将 if __name__ == '__main__': main() 语法类型,如 example 从终端运行。

如果你想进一步了解原因,请调查 multiprocessing ,它被用于同时进行期货交易,并进一步阅读 here .

不过,总结一下,windows没有os.fork方法,因此必须使用“作弊”来创建子进程,即创建一个全新的python实例,并从顶部执行脚本以达到类似的状态。然而,这意味着每个新版本都需要知道不是主线程启动了进程生成。