使用python从文件中提取数据并写入新文件

时间:2016-12-06 22:31:37

标签: python readfile text-parsing

我试图从具有此结构的文件中提取数据

        //Side Menu
        market: 'Market',
        store: 'Store',
        stores: 'Stores',
        myNotes: 'My Notes',
        logout: 'Logout',
        //Toast
        activeUserHasChanged: 'Resetting app - the active user has changed.',
        loginHasExpired: 'Your login has expired.',
        appIsReseting: 'The app is resetting.',

我想要的是提取单引号之间的所有文本并将其放入一个新文件中,我认为Python可能是一个不错的选择,但我是编程和Python的新手,我尝试过但没有运气和对于我所读过的内容,它不应该是一个小脚本。

我的预期输出是:

         Market,
         Store,
         Stores,
         My Notes,
         Logout,
         Resetting app - the active user has changed,
         Your login has expired,
         The app is resetting,

所以对此的任何帮助都将受到赞赏。

问候。

2 个答案:

答案 0 :(得分:2)

一个简单的解决方案就像:

in_string = False
with open('infile.txt','r') as fr, open('outfile.txt','w') as fw:
  for char in fr.read():
    if char == "'":
      in_string = in_string != True  # XOR
    elif in_string:
      fw.write(char)

直觉是我们逐个字符地阅读文件并跟踪我们在此过程中看到的任何'。当我们遇到第一个时,我们将下一个字符写入输出文件,直到我们遇到第二个等等。

它不处理无效输入,也不做缓冲或任何花哨的事情。但是如果你只有一些格式良好的小文件,那就应该这样做。 它也没有用逗号分隔你的输出格式,但是这不应该太难做到。

答案 1 :(得分:1)

假设您已输入文本文件

import re
fid = open('your input file','rb')
output = open('output file','wb')
for i in fid:
    m = re.match(r"['\"](.*?)['\"]",i)
    if m is not None:
        output.write(m.group(1)+'\r\n')
fid.close()
output.close()

R"' \" [' \"]"这个正则表达式将让你在单引号之间找到任何东西。如果找不到任何内容,请跳过希望这有用。