当前位置: 首页 > 面试题库 >

使用Python在文本文件中查找和替换

侯和惬
2023-03-14
问题内容

我有一个大约40万行的文本文件。我需要将此文本文件导入一个程序,该程序仅接受以空格或制表符分隔的文本文件,但是此文本文件以分号分隔。我要从(Arcmap)导出文本文件的程序中没有选项来更改分隔,并且在文本文件本身中进行查找和替换实际上需要2天。

我已经搜索了一个脚本来执行此操作,但是它们似乎都用空格替换了单词文件的整个LINE,而不是单独替换了每个分号,而给我留了一个空的文本文件。

这是我的文本文件的示例:

"OID_";"POINTID";"GRID_CODE";"POINT_X";"POINT_Y"
;1;-56.000000;200900.250122;514999.750122
;2;-56.000000;200900.750122;514999.750122
;3;-56.000000;200901.250122;514999.750122
;4;-57.000000;200901.750122;514999.750122
;5;-57.000000;200902.250122;514999.750122
;6;-57.000000;200902.750122;514999.750122
;7;-57.000000;200903.250122;514999.750122
;8;-57.000000;200903.750122;514999.750122
;9;-57.000000;200904.250122;514999.750122
;10;-57.000000;200904.750122;514999.750122

我需要它看起来像这样:

1 -56.000000 200900.250122 514999.750122
2 -56.000000 200900.750122 514999.750122

问题答案:

这个怎么样:

sed -i 's/;/ /g' yourBigFile.txt

这不是Python解决方案。您必须在shell中启动它。但是,如果您使用记事本,我想您在Windows上。所以这里是一个Python解决方案:

f1 = open('yourBigFile.txt', 'r')
f2 = open('yourBigFile.txt.tmp', 'w')
for line in f1:
    f2.write(line.replace(';', ' '))
f1.close()
f2.close()


 类似资料:
  • 问题内容: 我正在运行Python 2.7。 我有三个文本文件:,,和。现在,包含我要搜索的几行并将该部分替换为中的内容。这是一个简单的示例: data.txt find.txt replace.txt 所以,在上面的例子中,我要搜索的所有出现,以及在数据和更换这些线路。 我在使用正确的方法时遇到了一些麻烦,因为我的内存大约为1MB,所以我想尽可能地提高效率。一种愚蠢的方法是将所有内容连接成一个长

  • 问题内容: 我想递归搜索带有文本文件子目录的目录,并用多行字符串的内容替换文件中每次出现的{$ replace}。如何用python实现? [编辑] 到目前为止,我所拥有的只是使用os.walk的递归代码,以获取需要更改的文件列表。 问题答案: 签出os.walk: 上面的解决方案有缺陷,例如实际上会打开它找到的每个文件,或者实际上将每个文件都读到内存中(如果您有1GB的文本文件,那就不好了),但

  • 问题内容: 通常,我使用手动查找来使用phpmyadmin替换MySQL数据库中的文本。我现在已经厌倦了,如何运行查询以在phpmyadmin的整个表中查找并用新文本替换文本? 示例:find关键字,替换为。 问题答案: 进行更新 来自- 如果要从所有表进行编辑,最好的方法是先提取,然后再上传回来。

  • 本文向大家介绍Python替换文件中的文本,包括了Python替换文件中的文本的使用技巧和注意事项,需要的朋友参考一下 例子            

  • 问题内容: 我有一个大文本文件(URL.txt),我希望使用一个 sed 命令执行以下操作: 查找行号19和33之间的文本“ google”并将其替换为“ facebook”。 在终端上显示输出而不更改原始文件。 问题答案: 您可以使用SED的范围选择器: 这将在19(不含)和33(含)之间的行上进行替换 请注意,这只会替换每行的第一次出现,您可以使用-modifier更改此行为:

  • 当我检查doc_text字符串时,我可以看到“{Today}”,但“{ConsultantName}”被拆分为多个运行。开始大括号和结束大括号不与单词放在一起--它们之间有XML标记: 代码