python逐行写入文件_逐行写入文件Python

1586010002-jmsa.png

Here, I want to write the word_count in each loop line by line to the file. However, they are written all back to back.

import os

import string

def remove_punctuation(value):

result = ""

for c in value:

# If char is not punctuation, add it to the result.

if c not in string.punctuation and c != '،' and c != '؟' and c ! = '؛' and c != '«' and c != '»':

result += c

return result

def all_words(file_path):

with open(file_path, 'r', encoding = "utf-8") as f:

p = f.read()

p = remove_punctuation(p)

words = p.split()

word_count = len(words)

return str(word_count)

myfile = open('D:/t.txt', 'w')

for root, dirs, files in os.walk("C:/ZebRa", topdown= False):

for filename in files:

file_path = os.path.join(root, filename)

f = all_words(file_path)

myfile.write(f)

break

myfile.close()

I have also tried to add newline, but instead, it writes nothing.

myfile.write(f'\n')

解决方案

Change this line:

return str(word_count)

to

return str(word_count) + '\n'

If you're using python 3.6+, you could also try:

return f'{word_count}\n'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值