返回不中断循环的字符串结果

嗨,我想知道是否有XML RPC发送一字符串
从服务器到客户端的短信,并带有呼叫返回,从而破坏了
我的循环
例如
def somefunc():
为了采取行动,结果中的文件:
full_filename = os.path.join(path_to_watch,files)
theAct = action.get(动作,"未知")
out2 = str(full_filename) +"" + str(theAct)
返回2
返回语句将返回结果打破我的循环.我的目标是
要继续循环和更新客户
有任何想法吗?
干杯
安德鲁
提前致谢
Pyhon 2.5.2
Windows XP

# 回答1


安德鲁写道:
是的,使用产量而不是返回.它将功能变成生成器.
克里斯蒂安
# 回答2


嗨,我整天都在尝试屈服和其他不同的事情:D
但是我总是用产量获得相同的结果
故障:<故障1:" <类型'exceptions.typeerror'>:不能元帅<类型
'发电机'
我不确定我做错了什么,因为这是我第一次
使用的产量
关于如何解决此错误的任何建议
干杯
安德鲁
克里斯蒂安·海姆斯(Christian Heimes)写道:
是的,使用产量而不是返回.它将功能变成生成器.
克里斯蒂安
# 回答3


def somefunc():
为了采取行动,结果中的文件:
full_filename = os.path.join(path_to_watch,files)
theAct = action.get(动作,"未知")
产生str(full_fileName) +"" + str(theAct)
?
这是一个示例
使用产量:
def yi(x):
x 0:
产生str(x)
x- = 1
<发电机对象在0x01fa3c88>
'4'
'3'
'2'
'1'
Trackback(最近的最新电话):
文件" ",第1行,在
a.next()
停止
# 回答4


8月26日,2:50*am,cnb <发电机对象在0x01fa3c88>
'4'
'3'
'2'
'1'
Trackback(最近的最新电话):
*文件" ",第1行,在<模块>中
* * a.next()
停止
您也可以做:
def yi(x):
x 0:
产生str(x)
x- = 1
打印x
10
9
8
7
6
5
4
3
2
1
# 回答5


是的,我发现了许多类似的例子,但产量仍然会产生
错误
对不起,如果我听起来很新鲜,但我没有编程的正规教育,所以
了解某事会比你们大多数人更长:d
我包括更多功能
这可能是什么不重要的
def watchos(self,path_to_watch =" c:\\"):
file_list_directory = 0x0001
尝试:path_to_watch或"".
除外:path_to_watch =".".
path_to_watch = os.path.abspath(path_to_watch)
out1 ="观察%s at%s"%(path_to_watch,time.asctime()) +" \ n \ n"
而1:
#在这里插入更多代码
结果= change_handle
为了采取行动,结果中的文件:
full_filename = os.path.join(path_to_watch,files)
theAct = action.get(动作,"未知")
产生str(full_fileName) +"" + str(theAct)
但是我很难把头缠绕在产量上...也许如果
无论我做什么,它都会产生更多的错误.我可以尝试
并进一步
无论如何一次 收获我感谢帮助欢呼
:-)
# 回答6


确定在此Hapens时确切地张贴您的工作:
ault:<故障1:" :不能元帅 '发电机'
它抱怨您试图元使用发电机对象而不是
您屈服的文件.
另外,我不确定:
尝试:打开(" c:/ruby/progs/blandat/infixtoprefix.rb")或打开(str(x))
除:打印"你好"
尝试:(打开(str(x))或打开(" c:/ruby/progs/blandat/infixtoprefix.rb"))))))
除:打印"你好"
你好
OR似乎无法正常工作.但这不是你的问题
重新体验
# 回答7


我运行服务器,然后执行客户端.我从客户处执行
函数key.watchos()
我的目标是管理工具
这只是我目标的功能:-)
Microsoft Windows XP [版本5.1.2600]
(C)版权1985-2001 Microsoft Corp.
C:\文档和设置\ Maboroshi> Python C:\ Software \ Mabssystem \ Client.py.py
使用关键字"键"与服务器交互
Trackback(最近的最新电话):
文件" ",第1行,
文件" c:\ python25 \ lib \ xmlrpclib.py",第1147行,in __call __
返回self .__发送(self .__名称,args)
文件" c:\ python25 \ lib \ xmlrpclib.py",第1437行,in __request
详细= self .__详细
文件" c:c:\ python25 \ lib \ xmlrpclib.py",第1201行
返回self._parse_response(h.getFile(),袜子)
文件" c:\ python25 \ lib \ xmlrpclib.py",第1340行,在_Parse_Response中
返回U.Close()
文件" c:\ python25 \ lib \ xmlrpclib.py",第787行,关闭
提高故障(** self._stack [0])
故障:<故障1:" <类型'exceptions.typeerror'>:不能元帅<类型
'发电机'
该函数WatchOS基本上基于Tim Goldens目录
观看应用程序
该功能如下如下
def watchos(self,path_to_watch =" c:\\"):
#get路径或维护应用程序的当前路径
file_list_directory = 0x0001
尝试:path_to_watch或"".
除外:path_to_watch =".".
path_to_watch = os.path.abspath(path_to_watch)
out1 ="观看%s at%s"%(path_to_watch,time.asctime()) +
" \ n \ n"
#Findfirstchangenotification设置了一个用于观看的手柄
#文件更改.
而1:
hdir = win32file.createfile(
path_to_watch,
file_list_directory,
win32con.file_share_read | win32con.file_share_write,
没有任何,
win32con.open_existing,
win32con.file_flag_backup_semantics,
没有任何
)
change_handle = win32file.ReadDirectoryChangesw(
hdir,
1024,
是的,#堆大小包括_subdirectories,
win32con.file_notify_change_file_name |
win32con.file_notify_change_dir_name |
win32con.file_notify_change_attributes |
win32con.file_notify_change_size |
win32con.file_notify_change_last_write |
win32con.file_notify_change_security,
没有任何,
没有任何
)
#永远循环,列出任何文件更改.等待...会
#每半秒钟,允许键盘
中断
#终止循环.
动作= {
1:"创建",
2:"删除",
3:"更新",
4:"从某物上重命名",
5:"更名为某事"
}
结果= change_handle
为了采取行动,在Res中文件 Ults:
full_filename = os.path.join(path_to_watch,files)
theAct = action.get(动作,"未知")
产生str(full_fileName) +"" + str(theAct)
RPC客户端如下
导入XMLRPCLIB,代码
#在此处指定服务器的IP,Defualt端口为9000
url =" http://127.0.0.1:8888"
sock = xmlrpclib.serverproxy(url,ally_none = true,verbose = 0)
#使用交互式控制台进行交互示例" key.keyit()"将
启动记录器
Interp = Code.Interactiveconsole({'key':sock})
Interp.Interact("使用关键字,\"键\"与服务器交互")
抱歉,如果我发布了很多代码:-)
先感谢您
# 回答8


8月26日,12:14*pm,Andrew 问题是XML-RPC的Python实现_can't_发送
发电机(这是"无法元帅"错误的原因
你).从文档中:
"符合符合的类型(例如可以通过XML编辑),
包括以下内容(除了指出的情况下,它们都没有净化
作为相同的python类型):[布尔值,整数,浮点数,
字符串,阵列,结构(dict),日期,二进制日期]"
不过,我不确定如何轻松解决此问题以实现所需的目标.
# 回答9


8月25日,6:37*PM,Andrew 安德鲁,
我的发电机在单纯的两侧工作
实例.您要求服务器端发电机,我不会发布
整个程序,因为很长,所以这是一个重要的部分:
server = simplexmlrpcserver((" localhost",8000))
server.register_introspection_functions()
def gen():
而1:
产量1
产量2
产量3
servg = gen()
server.register_function(servg.next,'gen')
称为" s.gen()"四次,输出:
Localhost-- [25/Aug/2008 23:08:28]" Post/RPC2 HTTP/1.0" 200-
1
Localhost-- [25/Aug/2008 23:08:29]" Post/RPC2 HTTP/1.0" 200-
2
Localhost-- [25/Aug/2008 23:08:30]" Post/RPC2 HTTP/1.0" 200-
3
Localhost-- [25/Aug/2008 23:08:31]" Post/RPC2 HTTP/1.0" 200-
1
正如预期的.我想您的问题在这条线上:
server.register_function(servg.next,'gen')
相反,你刚写的
server.register_function(servg,'gen')#wrong
甚至甚至
server.register_function(gen,'gen')#wrong
我也会对差异提出解释.
# 回答10


嗨,我没有错误
:d
收益率回报我要寻找的结果...但是
继续循环.它做的与返回相同的事情
有什么建议么
我的代码如下
serveraddr =('',8888)
srvr = theadingserver(serverAddr,simplexmlrpcrequesthandler,
lasher_none = true)
srvr.register_instance(theapp())
srvr.register_introspection_functions()
def watchos(path_to_watch =" c:\\"):
#get路径或维护应用程序的当前路径
file_list_directory = 0x0001
尝试:path_to_watch或"".
除外:path_to_watch =".".
path_to_watch = os.path.abspath(path_to_watch)
out1 ="观察%s at%s"%(path_to_watch,time.asctime()) +" \ n \ n"
#Findfirstchangenotification设置了一个手柄 观看
#文件更改.
而1:
hdir = win32file.createfile(
path_to_watch,
file_list_directory,
win32con.file_share_read | win32con.file_share_write,
没有任何,
win32con.open_existing,
win32con.file_flag_backup_semantics,
没有任何
)
change_handle = win32file.ReadDirectoryChangesw(
hdir,
1024,
是的,#堆大小包括_subdirectories,
win32con.file_notify_change_file_name |
win32con.file_notify_change_dir_name |
win32con.file_notify_change_attributes |
win32con.file_notify_change_size |
win32con.file_notify_change_last_write |
win32con.file_notify_change_security,
没有任何,
没有任何
)
#永远循环,列出任何文件更改.等待...会
#每半秒超时允许键盘中断
#终止循环.
动作= {
1:"创建",
2:"删除",
3:"更新",
4:"从某物上重命名",
5:"更名为某事"
}
结果= change_handle
为了采取行动,结果中的文件:
full_filename = os.path.join(path_to_watch,files)
theAct = action.get(动作,"未知")
out2 = str(full_filename) +"" + str(theAct)
产量str(out2)
servg = watchos()
srvr.register_function(servg.next,'watchos')
srvr.register_multicall_functions()
srvr.serve_forever()
# 回答11


安德鲁写道:
XML-RPC协议并不真正支持您的用例;每个
致电,客户发布完整的请求包,服务器
产生完整的回应.
# 回答12


MMK猜猜我将不得不寻找该项目的替代解决方案.
谢谢大家的帮助
欢呼安德鲁!
弗雷德里克·伦德(Fredrik Lundh)写道:
XML-RPC协议并不真正支持您的用例;每个
致电,客户发布完整的请求包,服务器
产生完整的回应.
# 回答13


8月26日,11:46*am,Andrew ...
我认为您的收益率是错误的.你应该把它标记吗
一?

标签: python

添加新评论