我當前的程序涉及遍歷我的源目錄并將每個檔案的名稱添加到我在 python 中的資料框中。我也想為每個檔案修改日期
import datetime
import os
import pandas as pd
#set src directory
os.chdir('C:/Users/jj/Desktop/do/Claims/globmove')
def read_files(filenames):
result = []
for filename in filenames:
file = read_sheets(filename)
file['Filename'] = filename
result.append(file)
return pd.concat(result, ignore_index=True)
def modification_date(filename):
t = os.path.getmtime(filename)
return datetime.datetime.fromtimestamp(t)
folder_path = os.path.abspath('C:/Users/jj/Desktop/do/Claims/globmove')
files = [file for file in os.listdir(folder_path) if file.endswith(".xlsx")]
dfooc = read_files(files)
我可以毫無錯誤地運行它,但是 datemodified 時間戳當前沒有附加到最終的資料幀-dfooc。如何獲得修改日期以追加?
編輯:更改上面我的原始代碼的順序后出現縮進錯誤
def read_files(filenames):
result = []
for filename in filenames:
file = read_sheets(filename)
file['Filename'] = filename
def modification_date(filename):
t = os.path.getmtime(filename)
return datetime.datetime.fromtimestamp(t)
file['ModificationDate'] = filename
result.append(file)
return pd.concat(result, ignore_index=True)
return pd.concat(result, ignore_index=True)
^
IndentationError: unexpected indent
uj5u.com熱心網友回復:
這是我的做法。
import os
from pathlib import Path
import pandas as pd
import pendulum
class FileDates:
def __init__(self, **kwargs):
self.file_type = kwargs.get("file_type")
self.file_path = kwargs.get("file_path")
self.path = kwargs.get("path")
self.tz = pendulum.now().timezone.name
def main(self) -> pd.DataFrame:
files = self.get_files()
dates = self.get_dates(files)
return pd.DataFrame(list(zip([str(Path(x)).split("/")[-1] for x in files], dates)), columns=["file", "date"])
def get_files(self) -> list:
files = [str(x) for x in self.file_path.rglob("*") if x.is_file()]
return [x for x in files if self.file_type in x]
def get_dates(self, files: list) -> list:
return [pendulum.from_timestamp(os.path.getmtime(Path(x))).in_tz(self.tz).to_date_string() for x in files]
file_type = ".xlsx"
file_path = Path(f"{Path.home()}/Desktop/do/Claims/globmove/")
data = FileDates(file_type=file_type, file_path=file_path).main()
uj5u.com熱心網友回復:
def read_files(filenames): result = [] for filenames in filenames: file = read_sheets(filename) file['Filename'] = filename file['DateModifiedOn'] = datetime.fromtimestamp(os.path.getmtime(filename))。 strftime('%m/%d/%Y') #os.path.getmtime(filename) result.append(file) return pd.concat(result, ignore_index=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/521396.html
標籤:Python熊猫约会时间
