gpt4 book ai didi

python - 'builtin_function_or_method' 列出

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:03 25 4
gpt4 key购买 nike

我知道 Python 是一种动态语言,但下面的代码让我很困扰。

我有下面的简单程序,它有一些辅助函数来包装命令执行。

EventLoaderToVerticaHelper 是一个有两个方法的辅助类,所以当我调用“get_filenames_from_hdfs_with_filter”时,它应该抛出一个错误或返回一个字符串列表。

class EventLoaderToVerticaHelper:
def __init__(self):
pass

@staticmethod
def execute_command(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
error_lines = p.stderr.readlines()
if len(error_lines) > 0:
raise error_lines
return p.stdout.readlines

@staticmethod
def get_filenames_from_hdfs_with_filter(folder, filetype):
cmd = "hdfs dfs -ls {0}/*.{1} | awk '{print $8}'".replace("{0}", folder).replace("{1}", filetype)
return EventLoaderToVerticaHelper.execute_command(cmd)

下面的代码使用了上面的帮助器,

from src.EventLoaderToVerticaHelper import EventLoaderToVerticaHelper
if __name__ == '__main__':
filelist = EventLoaderToVerticaHelper.get_filenames_from_hdfs_with_filter("/user/cloudera/testfiles", "csv")
for s in filelist:
print s

当我运行上面的程序时,出现以下错误。如果 List[Str]

我确定返回类型
Traceback (most recent call last):
File "/home/cloudera/PycharmProjects/vertical-event-loader/src/EventLoaderToVertica.py", line 29, in <module>
for s in filelist:
TypeError: 'builtin_function_or_method' object is not iterable

我知道我希望它表现得像一种类型化语言......我想方法返回 List[Str],当出现异常时我想终止程序。

我怎样才能做到这一点,我尝试了返回类型和其他东西,但没有成功。

最佳答案

return p.stdout.readlines

应该是

return p.stdout.readlines()

请注意,当您从 stderr 读取时,您确实在上面两行中正确调用了 readlines。

关于python - 'builtin_function_or_method' 列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45821916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com