首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Python在文本文件中查找和替换

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

Stack Overflow用户
提问于 2011-01-20 18:52:17
回答 3查看 99.1K关注 0票数 19

我有一个大约400,000行长的文本文件。我需要将这个文本文件导入到一个程序中,该程序只接受用空格或制表符分隔的文本文件,但这个文本文件是用分号分隔的。程序中没有选项,我从(Arcmap)导出文本文件来更改定界,并且在文本文件中进行查找和替换将需要2天的时间。

我已经搜索了一个脚本来做这件事,但它们似乎都用空格替换了word文件的整行,而不是单独替换每个分号,只留下一个空的文本文件。

以下是我的文本文件的示例:

代码语言:javascript
复制
"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

我需要它看起来像这样:

代码语言:javascript
复制
1 -56.000000 200900.250122 514999.750122
2 -56.000000 200900.750122 514999.750122
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-20 18:55:05

这样如何:

代码语言:javascript
复制
sed -i 's/;/ /g' yourBigFile.txt

这不是Python解决方案。你必须从一个shell开始。但如果你使用记事本,我猜你是在Windows上。所以这里有一个Python解决方案:

代码语言:javascript
复制
f1 = open('yourBigFile.txt', 'r')
f2 = open('yourBigFile.txt.tmp', 'w')
for line in f1:
    f2.write(line.replace(';', ' '))
f1.close()
f2.close()
票数 32
EN

Stack Overflow用户

发布于 2011-01-20 19:23:01

在Python中,您可以使用fileinput

代码语言:javascript
复制
import fileinput
for line in fileinput.FileInput("file",inplace=1):
    line = line.replace(";"," ")
    print line,

这将把你所有的";“替换成空格。

票数 20
EN

Stack Overflow用户

发布于 2013-01-06 23:22:45

Python 3.2添加了将其用作上下文管理器的功能,因此在处理过程中由于某种原因而失败的文件将始终被关闭:

代码语言:javascript
复制
import fileinput
def main():
    with fileinput.input(inplace=True) as f:
        for line in f:
            line = line.replace(";", " ")
            print(line, end='')

(inspiration)

通过向它提供要处理的文本文件来使用它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4746190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档