一尘不染

如何使用Python脚本修改文件夹中的所有文本文件

python

Python的新手,第一次发布者,请对我方便!我想.mod在当前文件夹内的特定扩展名(在示例中为)的所有文件中插入一行文本。如果方便的话,它可以指向一个特定的文件夹。

下面是我复制和修改的内容,它确实可以满足我对一个特定文件的需要,完全不需要用SIT替换sit的部分,但是如果删除它,该程序将无法工作。我不知道为什么会这样,但是我可以接受。

import sys, fileinput

for i, line in enumerate(fileinput.input('filename.mod', inplace=1)):  
    sys.stdout.write(line.replace('sit', 'SIT'))    
    if i == 30: sys.stdout.write('TextToInsertIntoLine32' '\n') #adds new line and text to line 32

我的问题是,如何为目录中的所有文件运行此文件?我尝试用替换文件名sys.argv[1]并从命令行调用脚本,但该命令'*.mod'对我不起作用。任何帮助,将不胜感激。


阅读 281

收藏
2021-01-20

共1个答案

一尘不染

您可以使用glob.glob列出当前工作目录中以文件名结尾的所有文件.mod

import fileinput
import glob
import sys

for line in fileinput.input(glob.glob('*.mod'), inplace=True):
    sys.stdout.write(line.replace('sit', 'SIT'))
    if fileinput.filelineno() == 32:
        #adds new line and text to line 32      
        sys.stdout.write('TextToInsertIntoLine32' '\n')
2021-01-20