如何使用python将特定文本从一个文件复制到另一个文件?

时间:2015-08-12 11:34:15

标签: python facebook scripting

我正在编写一个python脚本,只将facebook group_id从文件A复制到文件B. 我在这里使用的代码是

searchquery = 'group_id='
with open('h1.txt') as f1:
    with open('h2.txt', 'a') as f2:
        lines = f1.readlines()
        for i, line in enumerate(lines):
            if searchquery in line:
                f2.write(line)`

当我运行此脚本时,它会成功运行并创建h2.txt文件作为h1.txt的副本。任何人都可以指导我出错的地方吗?

除了我正在做的事情之外,还有任何有效的方法来提取唯一的facebook群组名称和链接,请分享。感谢

我的h1.txt文件是here

2 个答案:

答案 0 :(得分:1)

来自data的所有h1.txt都在一行上,因此当h2.txt为True时,您最终将所有数据都写入if searchquery in line,这样您就可以编写一行恰好是h1.txth2.txt中的唯一一行,如果您只是希望group_id =..使用正则表达式:

with open("h1.txt") as f:
    import  re
    dat = f.read()
    print(re.findall("group_id=\d+", data))

输出:

['group_id=132946160231517', 'group_id=132946160231517', 'group_id=193252980718262', 'group_id=193252980718262', 'group_id=399162576788186', 'group_id=399162576788186']

如果您只想要ID:

 dat = f.read()
 print(re.findall("group_id=(\d+)",data))

 ['132946160231517', '132946160231517', '193252980718262', '193252980718262', '399162576788186', '399162576788186']

如果你想要名字:

 re.findall('"name":"(.*?)"',data)

答案 1 :(得分:1)

>>> with open('h1.txt') as f:
...     re.findall(r'group_id=[0-9]+', f.read())
...
['group_id=132946160231517', 'group_id=132946160231517', 'group_id=193252980718262', 'group_id=193252980718262', 'group_id=399162576788186', 'group_id=399162576788186']