如何在文本文件中编写和替换元素?

时间:2017-11-28 21:58:26

标签: python file-writing data-files

我对此概念感到有点迷茫,我们没有示例向我们展示如何在文件中替换或搜索。

提示:

  

写一份文件

  将为您提供输入I的文件路径,输出O的文件路径,字符串S和字符串T.
  读取I的内容,用T替换每次出现的S,并将结果信息写入文件O.   如果已经存在,则应该替换O.

输入未知,这是我们提供的唯一代码:

import sys
I= sys.argv[1]
O= sys.argv[2]
S= sys.argv[3]
T= sys.argv[4]

我们提供的唯一示例是如何读取文件,以及如何将简单的文本元素写入文件。

到目前为止我的代码:

file1 = open(I, 'r')

data = file1.read()

我真的被卡住了。

5 个答案:

答案 0 :(得分:2)

您不在文件中替换本身 - 您将文件内容读入字符串,在字符串中替换,然后将结果写入输出文件。

  • 打开输入文件
  • 读入字符串变量
  • 关闭文件
  • replace(Python方法)所有S T
  • 打开输出文件
  • 写字符串变量
  • 关闭文件

答案 1 :(得分:1)

首先你open输入文件,并读取其中的内容。

接下来,您创建一个loop,在其中检查当前单词是否与T相同,如果是,您replace,最后将新字符串写入输出文件。

我不会给你任何代码,因为这就是你需要的东西,你需要找到你自己的方法。

祝你好运

答案 2 :(得分:1)

这是你的代码:

import sys
I= sys.argv[1] 
O= sys.argv[2] 
S= sys.argv[3]
T= sys.argv[4]

with open(I, 'r') as file_in:
    text = file_in.read()
    text = text.replace(S,T)
    with open(O, 'w') as file_out:
        file_out.write(text);

with构造只确保文件在完成后关闭,这样您就不必考虑它了。剩下的就是直截了当。

答案 3 :(得分:0)

您可以编写一个功能来为您完成。

import sys

def elReplacer(I,O,S,T):
    with open(O,"w") as outputFile:
        outputFile.write(open(I,"r").read().replace(S,T))
    outputFile.close()

I= sys.argv[1] 
O= sys.argv[2] 
S= sys.argv[3]
T= sys.argv[4]

elReplacer(I,O,S,T)

答案 4 :(得分:0)

这很晚了,但由于我的课程遇到了这个确切的问题,所以我可能会帮助别人。我将输入文件命名为“ inny”,将变量命名为“ outy”,以后将作为输出。

我采取的步骤是:

  • 打开输入文件

  • 读取输入文件并将其存储在字符串中

  • 关闭文件

  • 打开需要覆盖的文件(确保将其置于写入模式)

  • 使用re.sub替换T中的S

  • 将其写入文件

  • 关闭文件

这是我在下面使用的代码。我知道可以将其缩短,但是如果您想向教授展示您的作品,则可以使用它。

import re
inny=open(I,'r')
results1 = inny.read()
inny.close()
outy=open(O,'w')
results2 = re.sub (S,T,results1)
outy.write(results2)
outy.close()