给定此文件:
$ cat words.txtline1 word1 word2line2 word3 word4line3 word5 word6
如果您一次只想要一个字(忽略文件中空格与换行符的含义):
with open('words.txt','r') as f: for line in f: for word in line.split():print(word)
印刷品:
line1word1word2line2...word6
同样,如果要将文件拼合为文件中单个单词的平面列表,则可以执行以下 *** 作:
with open('words.txt') as f: flat_list=[word for line in f for word in line.split()]>>> flat_list['line1', 'word1', 'word2', 'line2', 'word3', 'word4', 'line3', 'word5', 'word6']
使用
print 'n'.join(flat_list)…可以创建与第一个示例相同的输出
或者,如果要在文件的每一行中嵌套单词列表(例如,从文件创建行和列的矩阵):
with open('words.txt') as f: matrix=[line.split() for line in f]>>> matrix[['line1', 'word1', 'word2'], ['line2', 'word3', 'word4'], ['line3', 'word5', 'word6']]
如果您想使用正则表达式解决方案,则可以在示例文件中过滤
wordN和
lineN键入单词:
import rewith open("words.txt") as f: for line in f: for word in re.findall(r'bwordd+', line): # wordN by wordN with no lineN
或者,如果您希望它成为带有正则表达式的逐行生成器:
with open("words.txt") as f: (word for line in f for word in re.findall(r'w+', line))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)