Python - 对目录中的每个文件执行命令行功能?

时间:2013-10-19 14:45:56

标签: python mysql command-line subprocess rename

我有一个CSV文件目录,我想导入MySQL。大约有100个文件,进行手动导入很痛苦。

我的命令行是:

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

这些文件都是XX.dat类型,即AC.datCP.dat等。我实际上是在处理文件之前先重命名它们(通过rename 's/^/PUBACC_/' *.dat)。理想情况下,我希望能够在一个脚本中完成这两个任务:重命名文件,然后运行命令。

从我发现的内容中可以看出:

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

任何人都可以帮助我开始使用可以实现此目的的脚本吗?读取文件名,重命名,然后为每一个运行mysqlimport命令?

谢谢!

1 个答案:

答案 0 :(得分:1)

我想可以使用类似下面的python代码:

import subprocess
import os


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

显然,您应该将命令从echo更改为您的命令。

有关使用子流程的更多详细信息,请参阅http://docs.python.org/2/library/subprocess.html,或查看可能的重复。