我需要读取包含不同行信息的文件 - 例如文件可能包含
12345678910
abcdefghij
zyxwvutsrq
然后我需要垂直阅读代码,所以我的列表将是:
(1az)(2by)
到目前为止我的代码是
# grid is the original file that has been read and put into a list
grid2 = zip(*grid)
for word in words :
for charc in grid2 :
if word in charc :
wordsFound.append(word )
然后我通过我的搜索功能运行zip(*grid)
,但它只返回整个单词文件,而不仅仅是它找到的单词
任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
该程序打印输入文件的列:
with open('input.txt') as input_file:
rows = input_file.readlines()
rows = zip(*[row.strip() for row in rows])
rows = [''.join(row) for row in rows]
print rows
结果,当使用OP的数据时:
['1az', '2by', '3cx', '4dw', '5ev', '6fu', '7gt', '8hs', '9ir', '1jq']
答案 1 :(得分:0)
您不需要调用readlines或制作任何中间列表,只需转置文件对象,使用map删除换行符:
with open("test.txt") as f:
# python2 itertools.izip, itertools.imap
print(["".join(r) for r in zip(*map(str.rstrip,f))])
输出:
['1az', '2by', '3cx', '4dw', '5ev', '6fu', '7gt', '8hs', '9ir', '1jq']