计算 .txt 中的单词数,然后将结果写入同一个 .txt
count words in a .txt then write the results in the same .txt
我正在尝试计算文本文档中的字数,然后将总数写回 .txt
这是我的进度
words = 0
f = open("count.txt", 'r+')
for wordcount in f.readline().split(" "):
words += 1
print('number of words ')
print(words)
f.write("number of words ")
f.write(words)
f.close()
我收到这个错误
TypeError: expected a character buffer object
我哪里错了?
我觉得 f.write(words)
不是将总数写入 txt 的正确方法?
file.write
只接受文本缓冲区,所以你需要先将 words
转换为字符串,然后再将其写入文件:
f.write(str(words))
您必须先将 words
转换为字符串才能将其写入文件。
with open("count.txt", "r+") as f:
words = len(f.read().split())
print('number of words ')
print(words)
f.write("number of words ")
f.write(str(words))
此外:
readline
只读一行。使用read
读取整个文件。
使用len
来计算列表的大小,自己计算一下
使用with
确保文件将被关闭
f.write
requires a string as its argument, unlike print
,它将接受任意数量的任何类型的对象,并自动为您将它们全部转换为字符串,并使用可配置的分隔符和可配置的结尾等将它们连接起来。
换句话说,print
聪明、友善; write
是一个低级函数。因此,要使用 write
进行此操作,您必须手动进行转换。
f.write(str(words))
但您也可以只使用 print
而不是调用 f.write
:
print(words, file=f)
请注意,这并不完全相同。当您调用 print
时,默认情况下,它会在末尾放置一个换行符。所以,这段代码:
print('number of words ')
print(words)
… 将打印出两行:
number of words
3
同样,这段代码:
print('number of words ', file=f)
print(words, file=f)
… 将向文件中添加相同的两行。
单词必须转换为字符串。 File.write()
就是实际要写的东西。
您的新密码:
f.write("number of words ")
f.write(str(words))
我正在尝试计算文本文档中的字数,然后将总数写回 .txt
这是我的进度
words = 0
f = open("count.txt", 'r+')
for wordcount in f.readline().split(" "):
words += 1
print('number of words ')
print(words)
f.write("number of words ")
f.write(words)
f.close()
我收到这个错误
TypeError: expected a character buffer object
我哪里错了?
我觉得 f.write(words)
不是将总数写入 txt 的正确方法?
file.write
只接受文本缓冲区,所以你需要先将 words
转换为字符串,然后再将其写入文件:
f.write(str(words))
您必须先将 words
转换为字符串才能将其写入文件。
with open("count.txt", "r+") as f:
words = len(f.read().split())
print('number of words ')
print(words)
f.write("number of words ")
f.write(str(words))
此外:
readline
只读一行。使用read
读取整个文件。
使用len
来计算列表的大小,自己计算一下
使用with
确保文件将被关闭
f.write
requires a string as its argument, unlike print
,它将接受任意数量的任何类型的对象,并自动为您将它们全部转换为字符串,并使用可配置的分隔符和可配置的结尾等将它们连接起来。
换句话说,print
聪明、友善; write
是一个低级函数。因此,要使用 write
进行此操作,您必须手动进行转换。
f.write(str(words))
但您也可以只使用 print
而不是调用 f.write
:
print(words, file=f)
请注意,这并不完全相同。当您调用 print
时,默认情况下,它会在末尾放置一个换行符。所以,这段代码:
print('number of words ')
print(words)
… 将打印出两行:
number of words
3
同样,这段代码:
print('number of words ', file=f)
print(words, file=f)
… 将向文件中添加相同的两行。
单词必须转换为字符串。 File.write()
就是实际要写的东西。
您的新密码:
f.write("number of words ")
f.write(str(words))