通过文件夹

时间:2018-02-13 13:10:30

标签: python

我是python的新手。我在一个文件夹中有1000个文件,我想在文件夹中的所有文件上运行一段代码。文件包含文本内容(推文),我想删除" https"并从推文内容列中删除所有列(例如,时间戳,文章ID等) 任何帮助都将非常感激。

列是ARTICLE_ID HEADLINE AUTHOR CONTENT ARTICLE_URL MEDIA_PROVIDER。我对变量的兴趣只是内容列

E.g。

  

成功后院烧烤的关键?注入纸杯蛋糕。 RT如果他们   看起来好吃! HTTP:// ...

我希望它看起来像

  

成功后院烧烤的关键?注入纸杯蛋糕。 RT如果他们   看起来好吃!

1 个答案:

答案 0 :(得分:1)

据我所知,你想要1)读取目录中所有文件的内容,2)更改该内容的本地副本,3)将结果写在其他地方:

1)正如@FlyingTeller指出的那样,已经存在许多问题的good answers。但简而言之:

import os

tweet_dir = 'some/location/on/your/pc'
for file_name in os.listdir(tweet_dir):
    with open(os.path.join(tweet_dir, file_name)) tweet_file:
        tweet = tweet_file.readlines()
        # now we can modify the content we copied into 'tweet'

2)如果你想知道如何在python中修改字符串,请查看string的文档,也可以regex。在循环中,删除所有that looks like a http address都可以这样做(但只是因为推文对消息中链接的位置有非常严格的格式):

tweet = tweet.split('http://')[0]

3)与其他要点相同,'how to write to a file in python'的答案已经存在。但简而言之,一旦您按照自己想要的方式修改了推文,就可以在内循环中执行此操作:

# create a directory called 'changed' within the original one by hand, and then:
with open(os.path.join(tweet_dir, 'changed', file_name), 'w') as new_tweet_file:
    new_tweet_file.write(tweet)

进行。

如果你可以将一般问题分成很小的障碍,你可以更好地在StackOverflow上找到解决方案,或者更好的是,自己找出一个解决方案=)