我是python的新手。我在一个文件夹中有1000个文件,我想在文件夹中的所有文件上运行一段代码。文件包含文本内容(推文),我想删除" https"并从推文内容列中删除所有列(例如,时间戳,文章ID等) 任何帮助都将非常感激。
列是ARTICLE_ID HEADLINE AUTHOR CONTENT ARTICLE_URL MEDIA_PROVIDER。我对变量的兴趣只是内容列
E.g。
成功后院烧烤的关键?注入纸杯蛋糕。 RT如果他们 看起来好吃! HTTP:// ...
我希望它看起来像
成功后院烧烤的关键?注入纸杯蛋糕。 RT如果他们 看起来好吃!
答案 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上找到解决方案,或者更好的是,自己找出一个解决方案=)