【问题标题】:Convert multiple files using command line with Python使用 Python 命令行转换多个文件
【发布时间】:2021-04-28 01:33:31
【问题描述】:

我正在尝试将同一文件夹(称为“今天”)中的所有 SQB 文件转换为 BAK 文件格式。

我能够想出 Python 脚本来将必要的(同一天的)SQB 文件从(“Test1”文件夹)移动到单独的文件夹(“Today”文件夹)中。

现在,我需要运行命令行来遍历每个 SQB 文件并将所有文件转换为 BAK 文件格式。

将使用一个名为“SQBConverter”的 EXE 文件,命令行如下所示(例如,对于单个文件):

SQBConverter "C:\Users\Justin Dolt\Today\LOG_us_bcan_multi_replica_2021042603.SQB" 
"C:\Users\Justin Dolt\Today\test.bak" "PasswordHere"

这是我目前拥有的 Python 脚本。

import os
from os import path

import datetime
import glob
import shutil

# Today's date recognition and concat
today = datetime.date.today()
today = str(today)
nohyphen_today = today.replace('-','')
revised_today = "LOG_us_bcan_multi_replica_" + nohyphen_today 

src = "C:\\Users\\Justin Dolt\\Test1"
dst = "C:\\Users\\Justin Dolt\\Today" 

# Move SQB files from "Test1" folder to "Today" folder
src_files = os.listdir(src)
for file_name in src_files:
full_file_name = os.path.join(src, file_name)
    if os.path.isfile(full_file_name):
        shutil.copy(full_file_name, dst)

# Not sure from here
for f in glob.glob("*.sqb"):
        SQBConverter....?   

这里的代码是什么样的(遍历同一文件夹中的所有 SQB 文件并将所有文件转换为 BAK 文件)?

for f in glob.glob("*.sqb"):
        SQBConverter...? 

稍后添加图片:

【问题讨论】:

    标签: python command-line


    【解决方案1】:

    简单的方法是:

    for f in glob.glob('*.sqb'):
        os.system( f'SQBConverter "{f}" "{dst}/test.bak" {password}' )
    

    如果您需要更复杂的控制,可以使用subprocess.Popen,但这可能足以让您入门。

    更新

    您应该能够弄清楚如何更改备份文件名。这只是字符串操作。

    for f in glob.glob('*.sqb'):
        os.system( f'SQBConverter "{f}" "{dst}/{f[:-4]}.bak" {password}' )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-17
      • 2021-08-16
      • 2016-02-08
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 2021-05-22
      相关资源
      最近更新 更多