python - 用换行符替换一些特殊字符

  显示原文与译文双语对照的内容

我有一个有数字和符号的文本文件,我想删除它们的某些字符,并将新行。 例如文本文件类似于:


00004430474314-3","100004430474314-3","1779803519-3","100003004929477-3","100006224433874-3","1512754498-3","100003323786067

我希望输出类似于:


00004430474314
100004430474314
100003004929477
1779803519
100006224433874
1512754498
100003323786067

i tred使用这里代码替换 -3",",但它不工作。 任何帮助?


import re
import collections
s = re.findall('w+', open('text.txt').read().lower())
print(s.replace("-3","",">n"))

时间: 作者:

这里的re.findall 毫无用处。


with open('path/to/file') as infile:
 contents = infile.read()
 contents = contents.replace('-3","', 'n')
 print(contents)

代码的另一个问题是,你似乎认为 "-3","" 是一个包含 -3","的字符串。 我 不要 再谈 这件 事 了. python 看到第二个 ",并将它的解释为字符串的结尾。 后面有一个逗号,这使得 python 认为第二个参数是 s.replace()的第二个参数。

你真正要做的是告诉 python 那些双引号是字符串的一部分。 你可以按如下方式手动转义它们:


some_string_with_double_quotes ="this is a "double quote" within a string"

你还可以通过定义带有单引号的字符串来完成相同的操作:


some_string_with_double_quotes = 'this is a"double quote" within a string'

两种类型的引号在 python 中是等价的,可以用来定义字符串。 如果来自 C++的语言是用于字符的单引号,而双引号则用于字符串,那么这可以能很奇怪。

作者:

First,s 对象是一个字符串,但是如果你试图生成一个非零字符串,那么我们将以类似这样的形式结束:


0000443047431431000044304743143177980351931000030049294773100006224433874315127544983100003323786067

其中 replace() 是无用的。

我将更改你的代码到下面( 在 python 3.2中测试)


lines = [line.strip() for line in open('text.txt')]
line=''.join(lines)
cl=line.replace("-3","","n")
print(cl)

...