Python 从txt文件一次打印10个字
我正在尝试打印txt文件中的前10个单词,然后是下10个,然后是下一个 这是我目前拥有的Python 从txt文件一次打印10个字,python,text-files,Python,Text Files,我正在尝试打印txt文件中的前10个单词,然后是下10个,然后是下一个 这是我目前拥有的 text_file= open("read_it.txt", "r") lines= text_file.readlines() lineNum= 0 words= lines[lineNum].split() wordNum= 0 text_file.close() def printWords(): global wordNum global lineNum global
text_file= open("read_it.txt", "r")
lines= text_file.readlines()
lineNum= 0
words= lines[lineNum].split()
wordNum= 0
text_file.close()
def printWords():
global wordNum
global lineNum
global words
lineNum= lineNum+1
words= lines[lineNum].split()
wordNum= 0
print(words[wordNum])
wordNum=wordNum+1
print(words[wordNum])
wordNum=wordNum+1
但是如果我这样做的话,那两行必须重复10次
我想知道是否有更有效的方法来实现这一点我建议您使用正则表达式并拆分为单词,而不是按行拆分并将行拆分为单词。我会这样做的
# Get list of words from file "word_filename", default to "test.txt"
def get_words(word_filename='test.txt'):
# Regular expression library for re.split
import re
# Open the text file
with open(word_filename, 'r') as file:
# Generate the word list (Split with non-word as delimiter)
yield from re.split(r'\W+', file.read())
# Get a list of "limit" words, default to 10
def get_n_words(limit=10):
# Initialize the word list to store 10 words
words = []
# Loop through all the words
for word in get_words():
# Skip empty word
if len(word) == 0: continue
# Check if the word list have "limit" number of words
if len(words) == limit:
# Returns the word list
yield words
# Reset the word list
words = []
# The word list does not have enough size of "limit"
else:
# Insert the word
words.append(word)
# Check the remaining word list in case it doesn't have size of "limit"
if len(words) > 0: yield words
# Loop through the 10 word lists
for ten_words in get_n_words():
# Print the 10 words comma separated
print(', '.join(ten_words))
您可以使用for循环在范围10:printwords[wordNum+i]中为i重复该操作