求和txt文件中的字符串长度



我有一个名为的txt文件

Hans
Anna
Vladimir
Michael
Ed
Susan
Janice
Jo

我想打印所有名称的总和长度:

with open(r"C:people_names.txt", "r") as name_file:
sum_names = (len(x) for x in name_file)
print(sum(sum_names))

问题在于;\n〃;在每一个算作字母的名字之后,姓氏都没有";\n〃;,

这就是为什么我不能做len(x)-1

如果有任何建议,我们将很高兴:(

如果文件太大,我不建议使用readlines()
您可以使用rstrip从每行末尾删除n

with open(r"C:people_names.txt", "r") as name_file:
sum_names = [len(x.rstrip('n')) for x in name_file]
print(sum(sum_names))
with open(r"C:people_names.txt", "r") as name_file:
data = name_file.read()  
total_characters = len(data) - data.count("n")
print(total_characters)

从文件中读取每一行:

with open(r"C:people_names.txt", "r") as name_file:
name_file = name_file.readlines()
sum_names = [len(x.strip()) for x in name_file]
print(sum(sum_names))

name_file.readlines()返回一个行列表,这些行由换行符标识。这会解决你的问题。另一种解决方案是使用splitlines():

with open(r"hello.txt", "r") as name_file:
name_file = name_file.read().splitlines()
sum_names = [len(x) for x in name_file]
print(sum(sum_names))

最新更新