【问题标题】:Moving text files with the same name "meeting_saved_chat.txt" to parent folder将具有相同名称“meeting_saved_chat.txt”的文本文件移动到父文件夹
【发布时间】:2021-07-01 23:49:55
【问题描述】:

我已经遇到这个问题大约一个月了,没有任何进展,请帮助。 我在这个文件夹中有一个名为 Zoomproj 的父文件夹是我的 python 脚本和另一个名为 saved-meetings-backup 的文件夹(*不确定这是否相关),它是另一个名为 saved_meeting 的不同目录中的另一个文件夹的副本。在保存的会议备份中,我有大约 12 个文件夹,它们都有相似的名称,但按日期区分,例如一个文件夹名为“2021-05-06 12.50.38 Daniel Zoom Meeting 97242325090”,另一个文件夹名为“ 2021-05-12 11.17.12 Daniel Zoom Meeting 97242325090” 在所有这些文件夹中,只有一个名为“meeting_saved_chat.txt”的文件。我尝试使用 shutil 和 glob 和 os.path.join 无济于事,这是我的原始代码不起作用:

targ = r"Users/myname/projects/ZoomProj" + "//"
src = r"/Users/myname/projects/ZoomProj/saved-meeting-backup" + "//"
count = 0

for path, dirs, file in os.path.walk(src):
    for file in files:
        if file.endswith('.txt'):
            count += 1
            nfname =  os.path.splitext(file)[0] + "_" str(count) + os.path.splitext(file)[1]
            shutil.copy(nfname, targ)

我得到一个错误,没有这样的文件或目录。我已经缩小了问题的范围,似乎 python 没有将这些重新设置为文件,所以我尝试了这个

target_folder = r"/Users/myname/projects/ZoomProj" + "//"
src_folder = r"/Users/myname/projects/ZoomProj/saved-meeting-backup" + "//"
count = 0 

for path, dirs, file in os.path.walk(src_folder):
    if files:
        for file in files:
            if os.path.isfile(file):
                print(True)
            else:
                print(False)

这对所有文本文件都显示为 false,我不知道为什么。我知道,我应该阅读文档,但我已经尝试过了。任何帮助将不胜感激。

【问题讨论】:

  • 你为什么要在路径名后面加上//
  • 路径名应以/ 开头,使其成为绝对路径。
  • targ = r"/Users/myname/projects/ZoomProj"
  • 我不明白nfname 应该是什么。 shutil.copy() 的第一个参数应该是您要复制的文件的名称。为什么要在文件名中插入count?那个文件不存在。这是您要创建的目标文件的名称吗?

标签: python python-3.x


【解决方案1】:

复制时您将count 放入源文件中。它应该在目标文件中。

获取file 的基本名称,将其拆分为名称和扩展名,在其中插入计数,并将其加入目标目录。

targ = r"/Users/myname/projects/ZoomProj"
src = r"/Users/myname/projects/ZoomProj/saved-meeting-backup"

for count, file in enumerate(glob.glob(os.path.join(src, "*.txt")), 1):
    base = os.path.split(file)[1]
    (name, ext) = os.path.splitext(base)
    nfname =  f"{name}_{count}{ext}"
    shutil.copy(file, os.path.join(targ, nfname))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 2020-05-24
    • 2020-12-26
    相关资源
    最近更新 更多