简体   繁体   中英

Python - Execute command line function on every file in a directory?

I have a directory of CSV files that I want to import into MySQL. There are about 100 files, and doing a manual import is painful.

My command line is this:

mysqlimport -u root -ppassword --local --fields-terminated-by="|" data PUBACC_FR.dat

The files are all of type XX.dat , ie AC.dat , CP.dat , etc. I actually rename them first before processing them (via rename 's/^/PUBACC_/' *.dat ). Ideally I'd like to be able to accomplish both tasks in one script: Rename the files, then run the command.

From what I've found reading, something like this:

for filename in os.listdir("."):
    if filename.endswith("dat"):
        os.rename(filename, filename[7:])

Can anyone help me get started with a script that will accomplish this, please? Read the file names, rename them, then for each one run the mysqlimport command?

Thanks!

I suppose something like the python code below could be used:

import subprocess
import os


if __name__ == "__main__":
    for f in os.listdir("."):
        if (f.endswith(".dat")):
            subprocess.call("echo %s" % f, shell=True)

Obviously, you should change the command from echo to your command instead.

See http://docs.python.org/2/library/subprocess.html for more details of using subprocess, or see the possible duplicate.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM