如何通过使用python提供条件来自动复制文件?

2024-10-03 21:36:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我有一个脚本-

import glob
    import os
    import shutil
    import pandas as pd 
    df = pd.read_fwf(r'factadwords.Rout', header=None)
    end_str = '#--- END ---------------------------------------------------------------------------------------------------'
    #cols_to_check = ["0"]
    
    src = r'C:/Users/jj/Desktop/autotranscribe'
    dest = r'C:/Users/jj/Desktop/Bulk_Wav'
    if __name__ == '__main__':
    
        #for col in cols_to_check:
            if not df[0].str.contains(end_str).any():
                #def copy(src, dest):
                    for file_path in glob.glob(os.path.join(src,'*.Rout'), recursive=True):
                        new_path = os.path.join(dest, os.path.basename(file_path))
                        shutil.copy(file_path, new_path)

我的示例文件factadwords.Rout包含-

> #--- END ---------------------------------------0-----------------------------------------------------------

如您所见,我在其中添加了0,这意味着该文件应复制到目标文件夹,因为该文件不包含确切的结束字符

脚本针对一个文件成功运行,但并非所有文件都复制到目标文件夹。只有一个文件factadwords.Rout被复制,即使文件夹中的其他Rout文件没有有效的结束字符。为什么会发生这种情况?如何使文件夹中的所有文件在没有有效结束符的情况下复制到dest文件夹,从而使任务自动化,而无需每次手动更新df

print(file_path) Output from spyder call 'get_namespace_view': C:/Users/jj/Desktop/autotranscribe\factadwords.Rout

Tags: 文件pathimportsrc文件夹dfosusers
1条回答
网友
1楼 · 发布于 2024-10-03 21:36:09

你打印过你的数据框了吗?任何调试工作的第一步都是打印所有中间值以查看缺少的内容

在这种情况下,您似乎认为您的数据帧将有一个长列。那不是真的。因为这里有空格,所以数据框有三列:

      0    1                                                  2
0  # -  END                     -0   ...

因此,当您引用df[0]时,该字段中没有“0”

相关问题 更多 >