- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对 python 和线程还很陌生。我正在尝试编写一个使用线程和队列的程序,以便使用凯撒密码加密 txt 文件。当我单独使用加密函数时,它本身运行良好,但在我的程序中使用它时出现错误。错误从这一行开始:
for c in plaintext:
这里是完整的代码:
import threading
import sys
import Queue
#argumanlarin alinmasi
if len(sys.argv)!=4:
print("Duzgun giriniz: '<filename>.py s n l'")
sys.exit(0)
else:
s=int(sys.argv[1])
n=int(sys.argv[2])
l=int(sys.argv[3])
#Global
index = 0
#caesar sifreleme
#kuyruk deklarasyonu
q1 = Queue.Queue(n)
q2 = Queue.Queue(2000)
lock = threading.Lock()
#Threadler
threads=[]
#dosyayi okuyarak stringe cevirme
myfile=open('metin.txt','r')
data=myfile.read()
def caesar(plaintext, key):
L2I = dict(zip("ABCDEFGHIJKLMNOPQRSTUVWXYZ", range(26)))
I2L = dict(zip(range(26), "ABCDEFGHIJKLMNOPQRSTUVWXYZ"))
ciphertext = ""
for c in plaintext:
if c.isalpha():
ciphertext += I2L[(L2I[c] + key) % 26]
else:
ciphertext += c
return ciphertext
#Thread tanimlamasi
class WorkingThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
lock.acquire()
q2.put(caesar(q1.get, s))
lock.release()
for i in range(0,n):
current_thread = WorkingThread()
current_thread.start()
threads.append(current_thread)
output_file=open("crypted"+ "_"+ str(s)+"_"+str(n)+"_"+str(l)+".txt", "w")
for i in range(0,len(data),l):
while not q1.full:
q1.put(data[index:index+l])
index+=l
while not q2.empty:
output_file.write(q2.get)
for i in range(0,n):
threads[i].join()
output_file.close()
myfile.close()
非常感谢任何帮助,在此先感谢。
最佳答案
在您的代码中,您使用的是函数对象 q1.get
和 q2.get
。而是用括号调用它:
q1.get()
将从 Queue 中获取值.
根据 Queue.get()
document :
Remove and return an item from the queue. If optional args block is true and timeout is None (the default), block if necessary until an item is available.
关于python - 类型错误: 'instancemethod' 对象不可迭代(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40854861/
我有两个文件: x.py class BF(object) def __init__(): . . def add(self,z): . . y.py from y
我正在尝试通过类变量调用外部函数。以下是我的真实代码的简化: def func(arg): print(arg) class MyClass(object): func_ref = N
我试图在另一个实例方法的事件处理程序中调用实例方法,但我得到函数未定义,我认为这是因为在事件处理程序中“this”指的是 DOM 元素而不是实例: function MyObject(somethin
html 中的多个复选框,如果选择了 None,我希望我的用户重定向到同一页面。 我应该通过 Javascript 执行此操作吗?或者 if request.method == 'POST':
我不断收到此错误: TypeError: 'instancemethod' object has no attribute '__getitem__' 根据我对 django 网站的特殊看法,我正在玩
我遇到了pickle的问题,代码是: import cPickle class A(object): def __init__(self): self.a = 1 de
我正在尝试创建一个 python 类来使用我的 Raspberry Pi 控制步进电机。它主要有效,但是每当我将列表定义为类变量时,我都会收到“'instancemethod' object has
我正在向 sequelize 模型添加一个实例方法。根据the documentation我应该能够引用 this.name,但我能看到的唯一值是 this.dataValues.name。我没有理由
我爱ActiveSupport::Concern . 它使向您的类添加功能变得容易,而且语法很好。 无论如何,在 Rails 3.2 中,InstanceMethods 模块已被弃用。如果我理解正确,
我正在使用sequelize 连接到mysql 数据库进行开发。我有一个名为 Dealer 的模型: 'use strict'; module.exports = function(sequelize
在我们的代码库中,SWIG 结合了 Python 和 C++。 C++ 类有时会像这样被赋予 Python 扩展: %pythoncode %{ def DiscreteKey_baseData(se
我有一个如下所示的数据框: id ttp var cap_util wip 0 ADLL 3.333333 6.003725e-
我正在模拟循环算法,下面列出的代码给我错误 RR.Przesuniecie[Oczekujace_procesy] TypeError: 'instancemethod' object is unsu
我对 python 和线程还很陌生。我正在尝试编写一个使用线程和队列的程序,以便使用凯撒密码加密 txt 文件。当我单独使用加密函数时,它本身运行良好,但在我的程序中使用它时出现错误。错误从这一行开始
在调试来自 https://github.com/haydnw/AirPi/blob/master/outputs/ubidots.py 的 AirPi 代码时,我遇到了输出期间出现异常:“insta
HTML java c network python list_categories = reques
我想做这样的事情: class X: @classmethod def id(cls): return cls.__name__ def id(self):
所以开始我对 Node.js 的所有事物的冒险。我正在尝试学习的工具之一是 Sequelize。所以我将开始我想做的事情: 'use strict'; var crypto = require('cr
我在文件中创建了一个函数并使用 export function foo(params...) { // do something } 在模型的初始化中,我以这种方式导入函数: import { fo
我有一个类 (Bar),它实际上有自己的状态和回调,并被另一个类 (Foo) 使用: class Foo(object): def __init__(self): sel
我是一名优秀的程序员,十分优秀!