将不同目录的粘贴文件复制到一个文件夹
copy paste files from different directories to one folder
我又卡住了!
我的故事是:
我需要找到一个目录中不同文件夹中名为 "tv.sas7bdat" 的文件,并将找到的所有文件的内容保存到桌面上的单个 excel 文件中。使用我的实际代码,我可以获得该文件的所有路径并将其内容传输到数据框。但是,我无法将所有数据帧附加到一个 Excel 文件中。
在我的 excel 中,我只找到最后一个数据帧!!
这是我的代码,
import pandas as pd
from sas7bdat import SAS7BDAT
import os
path = "\"
newpath = "\"
files = []
# r=root, d=directories, f = files
for r, d, f in os.walk(path):
for file in f:
if 'tv.sas7bdat' in file:
files.append(os.path.join(r, file))
lenf = range(len(files))
for f in files:
print(f)
for df in lenf:
with SAS7BDAT(f) as file:
df = file.to_data_frame()
print(df)
group =pd.concat([df], axis=0, sort=True, ignore_index = True)
df.to_excel(newpath + 'dataframes_tv.xlsx',index=False)
您可能需要使用 shutil
模块,它允许您使用 copytree
功能复制目录和其中的文件。示例:
import shutil
shutil.copytree('/path/to/source', 'path/to/destination')
如果不想更改您的代码,您可以 enumerate
您的文件列表以通过从列表中获取第一个文件来将初始数据框分配为一侧的占位符来拆分流程,然后列表中的剩余文件将所有其余数据帧附加到初始数据帧
编辑
enumerate
和 files
列表
的代码片段
# save the first dataframe from 1st list element
df = SAS7BDAT(files[0]).to_data_frame()
# enumerate the list to access greater elements
for k, f in enumerate(files):
# from 2nd element onward
if k > 0:
with SAS7BDAT(f[k]) as file:
# append all elements to the 1st
df = df.append(file.to_data_frame())
group = pd.concat([df], axis=0, sort=True, ignore_index=True)
df.to_excel('dataframes_tv.xlsx', index=False)
我又卡住了! 我的故事是:
我需要找到一个目录中不同文件夹中名为 "tv.sas7bdat" 的文件,并将找到的所有文件的内容保存到桌面上的单个 excel 文件中。使用我的实际代码,我可以获得该文件的所有路径并将其内容传输到数据框。但是,我无法将所有数据帧附加到一个 Excel 文件中。
在我的 excel 中,我只找到最后一个数据帧!!
这是我的代码,
import pandas as pd
from sas7bdat import SAS7BDAT
import os
path = "\"
newpath = "\"
files = []
# r=root, d=directories, f = files
for r, d, f in os.walk(path):
for file in f:
if 'tv.sas7bdat' in file:
files.append(os.path.join(r, file))
lenf = range(len(files))
for f in files:
print(f)
for df in lenf:
with SAS7BDAT(f) as file:
df = file.to_data_frame()
print(df)
group =pd.concat([df], axis=0, sort=True, ignore_index = True)
df.to_excel(newpath + 'dataframes_tv.xlsx',index=False)
您可能需要使用 shutil
模块,它允许您使用 copytree
功能复制目录和其中的文件。示例:
import shutil
shutil.copytree('/path/to/source', 'path/to/destination')
如果不想更改您的代码,您可以 enumerate
您的文件列表以通过从列表中获取第一个文件来将初始数据框分配为一侧的占位符来拆分流程,然后列表中的剩余文件将所有其余数据帧附加到初始数据帧
编辑
enumerate
和 files
列表
# save the first dataframe from 1st list element
df = SAS7BDAT(files[0]).to_data_frame()
# enumerate the list to access greater elements
for k, f in enumerate(files):
# from 2nd element onward
if k > 0:
with SAS7BDAT(f[k]) as file:
# append all elements to the 1st
df = df.append(file.to_data_frame())
group = pd.concat([df], axis=0, sort=True, ignore_index=True)
df.to_excel('dataframes_tv.xlsx', index=False)