使用 python 从文件中提取数据并写入新文件
Extract data from file with python and write new file
我正在尝试从具有这种结构的文件中提取数据
//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,
因此,我们将不胜感激。
此致。
一个简单的解决方案是这样的:
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)
直觉是我们逐个字符读取文件并跟踪我们一路上看到的任何 '
。当我们遇到第一个时,我们将下一个字符写入输出文件,直到遇到第二个,依此类推
它不处理无效输入,也不做缓冲或任何花哨的事情。但是,如果您只有格式正确的小文件,那么应该这样做。
它也不会将您的输出格式化为逗号行,但从这里开始应该不会太难。
假设您输入的是文本文件
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"'\"['\"]" 这个正则表达式可以让你找到单引号之间的任何内容。如果没有找到,则跳过。希望这对您有所帮助。
我正在尝试从具有这种结构的文件中提取数据
//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,
因此,我们将不胜感激。
此致。
一个简单的解决方案是这样的:
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)
直觉是我们逐个字符读取文件并跟踪我们一路上看到的任何 '
。当我们遇到第一个时,我们将下一个字符写入输出文件,直到遇到第二个,依此类推
它不处理无效输入,也不做缓冲或任何花哨的事情。但是,如果您只有格式正确的小文件,那么应该这样做。 它也不会将您的输出格式化为逗号行,但从这里开始应该不会太难。
假设您输入的是文本文件
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"'\"['\"]" 这个正则表达式可以让你找到单引号之间的任何内容。如果没有找到,则跳过。希望这对您有所帮助。