我正在使用Python进行预处理推文。我的预处理推文在一个文件夹中。每个文件包含名为1.txt,2.txt,... 10000.txt的前处理推文。我想预处理它们并将它们写入名为1.txt,2.txt,... 10000.txt的新文件中。 我的代码如下:
for filename in glob.glob(os.path.join(path, '*.txt')):
with open(filename) as file:
tweet=file.read()
def processTweet(tweet):
tweet = tweet.lower()
tweet = re.sub('((www\.[^\s]+)|(https?://[^\s]+))','URL',tweet)
tweet = re.sub('@[^\s]+','USER',tweet)
tweet = re.sub('[\s]+', ' ', tweet)
tweet = re.sub(r'#([^\s]+)', r'\1', tweet)
tweet = tweet.translate(None, string.punctuation)
tweet = tweet.strip('\'"')
return tweet
fp = open(filename)
line = fp.readline()
count = 0
processedTweet = processTweet(line)
line = fp.readline()
count += 1
name = str(count) + ".txt"
file = open(name, "w")
file.write(processedTweet)
file.close()
但是那段代码只给了我一个已经预处理的名为1.txt的新文件。我怎么写其他9999文件?我的代码中有错误吗?
答案 0 :(得分:0)
通过调用count = 0,您的计数将重置为0。因此,每当它要写一个文件时,它就会写出" 1.txt"。你为什么要重建文件名,而不是只使用你正在预处理的推文的现有文件名。此外,您应该将函数定义移动到循环外部:
def select_movies():