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

标签 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 命令?

谢谢!

最佳答案

我想可以使用类似下面的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有关使用子流程的更多详细信息,或查看可能的重复内容。

关于Python - 对目录中的每个文件执行命令行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19467285/

相关文章:

Python:为给定项目的二维列表中的索引返回 2 个整数

python - 如何防止django,将日期转换为utc格式

python - 是否有适用于 Windows 的 Python PDF 元数据编写库?

导入两个较小文件时 Mysqlimport 非常慢

bash - "<()"在 bash 中是什么意思?

python - 如何argparse 1-3指定的范围并返回一个列表

python - 如何正确设置神经网络来为灰度图像着色?

mysql - 数据库设计: I have a child table which might be used from more than one parent table (one-to-one). 如何设计其模式

mysql - 如何使用有空格的列名?

javascript - NPM 不再工作