我有一个简单的问题,我希望在不使用VBA的情况下解决,但如果这是解决它的唯一方法,那就这样吧.
我有一个包含多行的文件(所有一列).每行的数据看起来像这样:
1 7.82E-13> gi | 297848936 | ref | XP_00 | 4-氢氧化物gi | 297338191 | gb | 23343 | randomrandom
2 5.09E-09> gi | 168010496 | ref | xp_00 | 2 - 丙酮酸盐
等等...
我想要的是一些方法来提取以"gi |"开头的数字串 并以"|"结束.对于某些行,这可能意味着多达5个gi数字,而对于其他行,它只是一个.
我希望输出看起来像是这样的:
297848936,297338191
168010496
等等...
我知道这很简单,但我是Python的新用户,所以我在这里遇到了一些麻烦.我顺便使用Python 3.
我有多个文件看起来像这样:
NAME DATE AGE SEX COLOR
Name Date Age Sex Color
Ray May 25.1 M Gray
Alex Apr 22.3 F Green
Ann Jun 15.7 F Blue
Run Code Online (Sandbox Code Playgroud)
(假设这是制表符分隔.我应该补充一点,真正的文件将有大约3,000行和17-18列)
我想要做的是选择年龄列中小于23的值的所有行.
在此示例中,输出将是:
Name Date Age Sex Color
Alex Apr 22.3 F Green
Ann Jun 15.7 F Blue
Run Code Online (Sandbox Code Playgroud)
这是我试图做的事情:
f = open("addressbook1.txt",'r')
line = f.readlines()
file_data =[line.split("\t")]
f.close()
for name, date, age, sex, color in file_data:
if age in line_data < 23:
g = open("college_age.txt",'a')
g.write(line)
else:
h = open("adult_age.txt",'a')
h.write(line)
Run Code Online (Sandbox Code Playgroud)
现在,理想情况下,我有20-30个这样的"地址簿"输入文件,我希望这个脚本循环遍历它们,并将年龄低于23的所有条目添加到同一个输出文件("college_age.txt").我真的不需要保留其他线路,但我不知道还能用它们做什么. …