[英]how to read the file using python?
我正在閱讀上面的.txt文件,在其中我必須標識這三個字母的單詞,例如(ARW,CZC,DUN等)。 稍后,我必須閱讀VR-GREQ等測試用例ID,直到下一種語言為止。 但我在讀取此.txt文件時遇到問題。 下面是我的代碼:
with open(output_filename) as parser_file:
for language in parser_file:
language = language.strip()
if(re.search('[A-Z]', language)):
lines = parser_file.readlines()
我必須進一步編碼,有人可以幫我嗎?
我的新代碼:output_filename = r“ C:\\ Usersktop \\ TEST \\ Language \\ Output.txt” def Writing():
rx = r'^([A-Z]{3})$'
# define a dictionary for the languages
languages = {}
# looks for exactly three uppercase letters from beginning to end
# define a temporary list
tmp = list()
for line in open(output_filename, 'r+'):
m = re.search(rx, line, re.MULTILINE)
if m is not None:
if len(tmp) > 0:
languages[current] = tmp
tmp = list()
current = m.group(1) # current holds the actual language tag
else:
if len(line) > 0:
tmp.append(line.strip())
# after the loop
if len(tmp) > 0:
languages[current] = tmp
print languages
如果需要查找長度為3的字符串,請使用[AZ] {3}。 您可以根據這3個字符“單詞”的位置將整個列表分成數組。
編輯:回答您的評論...
headers=re.split('[AZ]{3}\\n',YOUR_STRING)
將為每個部分找到“標題”。 然后,您可以執行NEW_STRING=YOUR_STRING[YOUR_STRING.find(headers[0]):YOUR_STRING.find(headers[1])]
使用循環和其他工具,這應該可以幫助您實現目標。
借助您的評論,問題變得更加清晰。 考慮以下代碼:
import re
string = your_string_as_above
rx = r'^([A-Z]{3})$'
# define a dictionary for the languages
languages = {}
# define a temporary list
tmp = list()
for line in re.split(r'\n', string):
m = re.search(rx, line, re.MULTILINE)
if m is not None:
if len(tmp) > 0:
languages[current] = tmp
tmp = list()
current = m.group(1) # current holds the actual language tag
else:
if len(line) > 0:
tmp.append(line.strip())
# after the loop
if len(tmp) > 0:
languages[current] = tmp
print languages
""" prints out a dictionary with the language as key
{'FRC': ['VR-GREQ-299659_18', 'VR-GREQ-299659_19', 'VR-GREQ-299659_28', 'VR-GREQ-299659_31', 'VR-GREQ-299659_32'], 'CZC': ['VR-GREQ-299684_6k', 'VR-GREQ-299606_6', 'VR-GREQ-299606_8', 'VR-GREQ-299640_1', 'VR-GREQ-299640_5', 'VR-GREQ-299640_6', 'VR-GREQ-299640_7'], 'DUN': ['FB_71125_1'], 'ARW': ['VR-GREQ-299684_6j', 'VR-GREQ-299684_6k', 'VR-GREQ-299606_3', 'VR-GREQ-299606_4', 'VR-GREQ-299606_5', 'VR-GREQ-299606_7', 'VR-GREQ-299606_9', 'VR-GREQ-299607_4', 'VR-GREQ-299608_1', 'VR-GREQ-299563_10']}
""""
在ideone.com上查看演示 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.