- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在开发一个小程序。
该程序的目的是从文件中获取输入,编辑文件以删除包含字母“l”的任何单词,然后将其输出到输出文件中。
我现在的代码有效,但是,它不会删除包含字母“l”的单词,只是删除字母本身。
这是我的代码
def my_main(ifile_name, ofile_name):
ifile_name = open(ifile_name, 'r')
ofile_name = open(ofile_name, "w+")
delete_list = ['l']
for line in ifile_name:
for word in delete_list:
line = line.replace(word, "")
ofile_name.write(line)
ifile_name.close()
ofile_name.close()
谢谢
更新
这是输入文件的样子:
The first line never changes.
The second line was a bit much longer.
The third line was short.
The fourth line was nearly the longer line.
The fifth was tiny.
The sixth line is just one line more.
The seventh line was the last line of the original file.
如果代码正确,输出文件应该如下所示
The first never changes.
The second was a bit much.
The third was short.
The fourth was the.
The fifth was tiny.
The sixth is just one more.
The seventh was the of the.
最佳答案
没有看到你的文件是什么样的,很难说出确切的用途,所以如果你能更新问题,那就太好了
但目前你正在遍历每个字母而不是单词......使用 split() 将单词拆分成一个列表并更改该列表然后将单词重新连接在一起以获得一个没有包含你的字母的单词的字符串
words = ''
with open(ifile_name,"r") as file:
for line in file:
list_of_words = line.split(' ')
for key, word in enumerate(list_of_words):
if 'l' in word:
list_of_words[key] = ''
words += ' '.join(w for w in list_of_words if w != '')
words += '\n'
with open(ofile_name, "w+") as file:
file.write(words)
这样做的好处是您不会遇到任何空白问题。你会得到一个带有单个空格的常规字符串
编辑:正如评论中指出的那样,更好的方法(整个文件不在内存中)是内联
with open(ifile_name,"r") as in_file, open(ofile_name, "w+") as out_file:
for line in file:
list_of_words = line.split(' ')
for key, word in enumerate(list_of_words):
if 'l' in word:
list_of_words[key] = ''
out_file.write(' '.join(w for w in list_of_words if w != ''))
关于Python删除包含 "l"的词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33961749/
话说,尾部的++在这里没有实际作用? 最佳答案 l+l++ 未定义。您的表达式中没有序列点来分隔对 l 的访问和后增量。它可以做任何事情,包括具有与 l+l 相同的效果。 编辑:问题和答案在 Why
我正在研究成员资格算法,我正在研究这个特定问题,该问题说明如下: 展示一种算法,给定任何常规语言 L,确定 L 是否 = L* 所以,我的第一个想法是,我们有 L*,它是 L 的 Kleene 星并确
我试图弄清楚如何使用 Javascript 生成一个随机 11 个字符串,该字符串需要特定的字母/数字序列,以及位置。 ----------------------------------------
我一直在 LinqPad 中试验查询。我们有一个表 Lot,其中有一列 Side char(1)。当我编写 linq to sql 查询 Lots.Where(l => l.Side == 'A')
这个问题在这里已经有了答案: Iterate over all pairs of consecutive items in a list [duplicate] (7 个答案) 关闭 7 年前。 假
列表 ['a','a #2','a(Old)'] 应变为 {'a'} 因为 '# ' 和 '(Old)' 将被删除,并且不需要重复项列表。我努力用生成器开发列表理解,并决定这样做,因为我知道它会起作用
我正在为蛇和梯子制作一 block 板,到目前为止,我已经按降序打印了板。但是,我需要以正确的方式打印电路板。 编辑“螺旋下降”意味着 100...91 81...90 80...71 ...
字符串“Hello\n”等于 {'H','e','l','l','o','\','n','\0'} 或 {'H','e','l','l','o','\n','\0'}? 是否在字符串定义中添加转义序列
这个问题在这里已经有了答案: Different behaviour for list.__iadd__ and list.__add__ (3 个答案) 关闭 8 年前。 ls = [1,2,3]
当我在编写一个程序时,我在我的代码中看到了一个奇怪的行为。这是我所看到的。 >>> l = [1,2,3,4,5,6,7,8] >>> g = [] >>> for i in l: ... g
我明白了what a Y Combinator is , 但我不明白这个来自 Wikipedia page 的“新颖”组合子的例子: Yk = (L L L L L L L L L L L L L
Exception ParseException is not compatible with throws clause in Comparator.compare(L, L). 我在java 6上
期望的输出 我想要一个函数返回一个列表,这样,给定一个“困惑的”列表 l,每个元素都是 l 对应元素的索引,如果 l 已排序。 (抱歉,我想不出更简单的说法。) 示例 f([3,1,2]) = [2,
你好,我正在查看“假设一个排序数组在你事先不知道的某个枢轴旋转。(即 0 1 2 4 5 6 7 可能变成 4 5 6 7 0 1 2)”这个问题的 C++ 解决方案。你如何有效地在旋转数组中找到一个
让我们考虑这个简单的例子: import numpy as np a=np.arange(90) a=a.reshape(6,3,5) 我想得到一个数组 b形状 (6*5,3+1=4) 与 b[0:6
我正在编写一个 q 脚本,它在特定路径中加载一个数据库并对其进行一些处理。 db 的位置目前在脚本中是硬编码的,但我想将 db 路径作为参数传递并让它从变量中的路径加载。 目前它看起来像这样: q)
为什么我收到错误 Device: (3:9741) (0,l.useLinkBuilder) is not a function。 (在 '(0,l.useLinkBuilder)()' 中,'(0,
我有 ADT 版本 23.0.4 并安装了 Android 5.0 的 SDK 平台。 我读到 Android 5.0 Lolipop 的 API 级别为 21。但是在 Eclipse 的“新建应用程
我在 Google Play Store 中实现了一个抽屉导航,我想在 DrawerLayout 中设置列 TableView 的选定项目。但是后来发现在touch模式下无法选中item,有一个i
作为 C++ 的新手,我基本上有一个关于 g++ 编译器的问题,尤其是库的包含。考虑以下生成文件: CPPFLAGS= -I libraries/boost_1_43_0-bin/include/ -
我是一名优秀的程序员,十分优秀!