[英]How can I put certain lines of text from a text file into a list with Python?
[英]How can I select lines from a text string given certain criteria in python and add them to a list
我有一个大的文本文件,已将其读入名为data的字符串中。
我正在使用CGI生成HTML5表单。
我需要从字符串中选择格式如下的行:
@ CountyName : 标题
这是一个示例:@Algeria:Geography
我需要将标题添加到仅包含标题的列表中,并使其具有唯一性。我已经使用国家/地区列表完成了此操作,但是我不必使用代替行号的条件。 这是代码片段:
import cgi
import cgitb; cgitb.enable() # for troubleshooting
data = open('factbook.txt')
countries = []
for index, text in enumerate(data):
if 54 <= index <= 344:
countries.append(text)
countries = [x[:-1] for x in countries]
countries = filter(None, countries)
headings = []
# Here is where I need help
提前致谢!
我不确定您要使用的方式是正确的国家/地区名称,我举了一个在问题中指定的列表示例:
In [73]: countries =[ "@Algeria:Geography", "@Greece:History", "@India:Culture", "@India:History"]
In [74]: countries = [x[:-1] for x in countries]
In [75]: countries
Out[75]: ['@Algeria:Geograph', '@Greece:Histor', '@India:Cultur', '@India:Histor']
在这里您应该这样做以获取国家
In [76]: countries = [x.split(':')[0][1:] for x in countries]
In [77]: countries
Out[77]: ['Algeria', 'Greece', 'India', 'India']
标题也类似:
In [88]: countries =[ "@Algeria:Geography", "@Greece:History", "@India:Culture", "@India:History"]
In [89]: countries
Out[89]: {' Culture', ' History', 'Geography', 'History'}
对于唯一list
使用一set
In [89]: countries =[ "@Algeria:Geography", "@Greece:History", "@India:Culture", "@India:History"]
In [90]: countries = set([x.split(':')[1] for x in countries])
In [91]: countries
Out[91]: {'Culture', 'Geography', 'History'}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.