gpt4 book ai didi

python - 在 Python 中将文件列表连接成字符串列表

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

我正在尝试创建一个类对象,其构造函数接受文件列表,将每个文件转换为字符串列表(每行一个)并将所有列表连接在一起并存储它。这个类还包含一个成员函数,它从列表中输出随机行

class randline:
def __init__(self, filename = [] ):
#def __init__(self, filename = [] , *args):

#for i in range(len(filename)):
self.lines = []

for path in filename:
with open(path, 'r') as f:
self.lines + f.readlines()
f.close()

def chooseline(self):
if self.lines:
return random.choice(self.lines)

def main():
#...
try:
generator = randline(args)
for index in range(numlines):
sys.stdout.write(generator.chooseline())
except IOError as (errno, strerror):
parser.error("I/O error({0}): {1}".
format(errno, strerror))

这会产生错误消息:

Traceback (most recent call last):
File "./1randline.py", line 59, in <module>
main()
File "./1randline.py", line 53, in main
sys.stdout.write(generator.chooseline())
TypeError: expected a character buffer object

但是 choiceline() 会从连接的文件字符串列表中生成一个字符串,不是吗?所以我很难弄清楚问题出在哪里。

最佳答案

应该是

self.lines += f.readlines() # notice the += 
# self.lines.extend(f.readlines()) is equivalent

但是您可以使用 fileinput 来代替

import fileinput
lines = list(fileinput.input(paths))

关于python - 在 Python 中将文件列表连接成字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16126704/

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