簡體   English   中英

如何在Python中編寫多個txt文件?

[英]How to write multiple txt files in Python?

我正在用Python進行預處理tweet。 我的未處理推文在一個文件夾中。 每個包含未處理tweet的文件都名為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個文件? 我的代碼有什么錯誤嗎?

調用count = 0時,您的計數將重置為0。 因此,每次要寫入文件時,都會寫入“ 1.txt”。 為什么要嘗試重建文件名,而不是僅對要處理的推文使用現有的文件名。 另外,您應該將函數定義移到循環之外:

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

for filename in glob.glob(os.path.join(path, '*.txt')):
  with open(filename) as file:
    tweet=file.read()

  processedTweet = processTweet(tweet)

  file = open(filename, "w")
  file.write(processedTweet)
  file.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM