Home > Enterprise >  How to make Python read multiple txt files
How to make Python read multiple txt files

Time:02-05


I need help with this Python Script
I am a noob to Python, but I really need this to work
I have over 200.txt files all located in different folders and subs, and in each txt file I have 2 codes that need to be edited

This is what I have going now and this works great but I have to rename the script to match the file name

f1 = open('(1).txt', 'r')
f2 = open('(1A).txt', 'w')
for line in f1:
    f2.write(line.replace('"aplid": 2147483648', '"aplid": -2147483648'))
f1.close()
f2.close()

This is my goal for the script to read anyfilename.txt in any folder

import glob
import os

for f in glob.glob("*.txt"):
f1 = open('f', 'r')
f2 = open('f', 'w')
for line in f1:
    f2.write(line.replace('"aplid": 2147483648,', '"aplid": -2147483648,'))
    f2.write(line.replace('"orlid": 2147483648,', '"orlid": -2147483648,'))
f1.close()
f2.close()

I made a batch script for this project and it works great, but it's super slow, it would be faster for me to edit the python script for each txt file lol..

I don't know if Python can read Folders and subfolders like batch dir /b /s /a-d

I'm sorry for bothering you'll, but I searched online and I can't find anything that helps with this and most of it I don't understand

I keep reading that using a path can help, but this script is going to be placed in several computers so using path is not best

CodePudding user response:

You can use os.walk to traverse through a directory tree:

import os

for root, dirs, files in os.walk('.'):
    for name in files:
        nmin = os.path.join(root,name)
        with open(nmin,"r") as fin:
            data = fin.read()
        data = data.replace('"aplid": 2147483648,', '"aplid": -2147483648,') \
                   .replace('"orlid": 2147483648,', '"orlid": -2147483648,')
        with open(nmin,"w") as fout:
            fout.write(data)
  •  Tags:  
  • Related