python - 为什么我每隔一条线?
问题描述
我正在尝试创建一个 Python 代码来计算每行文本的字数。
我的文字由以下电影标题组成:
我们仍然在偷老路 恶魔 不朽的战争 门户网站 来自地狱的自拍 坏修女 天文 Diggerz:黑肺上升 战斗无人机 如何驯龙高手 3
我创建的代码如下:
f = open('C:/movies/sample06.txt')
for x in f:
line = f.readline()
print(line, end='')
words = line.split(" ")
print(words)
num_words = len(words)
print(num_words)
我得到的是:
恶魔 ['恶魔\n'] 1 门户网站 ['The', '门户\n'] 2 坏修女 ['The','Bad','Nun\n'] 3 Diggerz:黑肺上升 ['Diggerz:', 'Black', 'Lung', 'Rises\n'] 4 如何驯龙高手 3 ['How', 'to', 'Train', 'Your', 'Dragon', '3\n'] 6
我的问题是: 我怎样才能得到上面每部电影的结果?这里的结果显示了所有其他电影标题的结果。
解决方案
您的代码以:
f = open('C:/movies/sample06.txt')
for x in f:
line = f.readline()
f
您在循环中逐行迭代您的文件for
。但是,一旦文件中的下一行被读入x
,您就将下一行读入line
. 由于您不对 做任何事情x
,因此这条线会丢失。
因此,您不必使用readline()
来迭代文件的行。做就是了:
with open('C:/movies/sample06.txt') as f:
for line in f:
print(line, end='')
words = line.split(" ")
print(words)
num_words = len(words)
print(num_words)
请注意with open....
保证您的文件在脚本中发生的任何事情都会关闭的习语。
推荐阅读
- r - 在 R 中转置 DataFrame
- powershell - 从文件中删除空格 - 保留一行
- javascript - Ag-Grid 列分组标题排序
- image - 确定 JPEG 的色彩空间
- php - CSS 代码阻碍了使用 PHP
- delphi - 平移时如何获取 TScrollBox 在 TLayout 中的位置?
- mariadb - 为什么表 DATABASECHANGELOG 上没有索引和/或 PK?
- concurrency - 是否可以使用 OpenCL 控制计算单元?
- google-apps-script - 谷歌脚本服务 Docs ligne 19 调用 openById(docIDs[i])
- java - 加入Spark RDD后排序无序