简体   繁体   English

ipynb 到 py,将所有带有 name* 的文件移动到文件夹

[英]ipynb to py, move all file with name* to folder

Hello I am trying to convert a notebook py to a regular python file, it creates new folders, and copies files to these based on the file name.您好我正在尝试将笔记本 py 转换为常规 python 文件,它会创建新文件夹,并根据文件名将文件复制到这些文件夹中。 How do I do this in py?我如何在py中做到这一点? Thanks!谢谢!

 import os
 def setPath_getData():
    # Set up folders for data
    newpath = r'userdata' 
    if not os.path.exists(newpath):
        os.makedirs(newpath)
        os.makedirs(r'userdata/sleep')
        os.makedirs(r'userdata/distance')
        os.makedirs(r'userdata/steps')
        os.makedirs(r'userdata/lightly')
        os.makedirs(r'userdata/mod')
        os.makedirs(r'userdata/sedentary')
        os.makedirs(r'userdata/very')
        os.makedirs(r'userdata/heart-rate-zone')
        os.makedirs(r'userdata/heart-rate')
        
        # Get data from fitbit
        filenames = os.listdir("user-site-export")
        unique_filenames = set()
        for f in filenames:
            unique_filenames.add(f.split("-")[0])

        # Move files to seperate folders
        !cp user-site-export/sleep* userdata/sleep
        !cp user-site-export/distance* userdata/distance
        !cp user-site-export/steps* userdata/steps
        !cp user-site-export/lightly_active_minutes* userdata/lightly/
        !cp user-site-export/moderately_active_minutes* userdata/mod/
        !cp user-site-export/sedentary_minutes* userdata/sedentary/
        !cp user-site-export/very_active_minutes* userdata/very/
        !cp user-site-export/time_in_heart_rate_zones* userdata/heart-rate-zone/
        !cp user-site-export/heart_rate* userdata/heart-rate/

        !ls userdata/
        print("Data loaded successfully")
        

I tried now with我现在尝试了

            # Get data from fitbit
        filenames = os.listdir("user-site-export")
        unique_filenames = set()
        for f in filenames:
            unique_filenames.add(f.split("-")[0])
        
        source = os.listdir('user-site-export/')
        dest = '/userdata/sleep/'
        
        for file in source:
            if file.startswith('sleep'):
                shutil.copy(file, dest)
            
            #ls userdata/
    print("Data loaded successfully")

setPath_getData()

but I am still not getting the files copied但我仍然没有复制文件

You can use shutil library to copy files.您可以使用 shutil 库来复制文件。 Snippet below can be used to copy source file to destination path.下面的片段可用于将源文件复制到目标路径。 Yet, be careful destination path should be full (relative or absolute) path.但是,请注意目标路径应该是完整(相对或绝对)路径。

import shutil
shutil.copyfile(source, dest)

If you want to copy all directory then you should use the following如果要复制所有目录,则应使用以下内容

shutil.copytree(src, dest)  

or more spesifically in your case或者更特别是在你的情况下

shutil.copytree("user-site-export/sleep","userdata/sleep")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM