【发布时间】:2020-01-25 15:07:15
【问题描述】:
我有一个代码可以监视文件夹的任何更改。它会检查新添加和删除的文件,并在发生此类情况时及时显示文件名。这是我的代码:
import os, time
import pandas as pd
import glob
path_to_watch = os.path.abspath('C:/Folder for violation csv/')
before = dict ([(f, None) for f in os.listdir (path_to_watch)])
while 1:
time.sleep (2)
after = dict ([(f, None) for f in os.listdir (path_to_watch)])
added = [f for f in after if not f in before]
removed = [f for f in before if not f in after]
if added: print ("Added: ", ", ".join (added))
if removed: print ("Removed: ", ", ".join (removed))
before = after
现在我想在这段代码中再包含一件事,我想读取正在添加到文件夹中的文件中的数据。我尝试使用from_dict 将字典转换为DataFrame,然后使用pandas 使用read_csv 读取csv,但它似乎不起作用。这是我更新的代码:
import os, time
import pandas as pd
import glob
path_to_watch = os.path.abspath('C:/Folder for violation csv/')
before = dict ([(f, None) for f in os.listdir (path_to_watch)])
while 1:
time.sleep (2)
after = dict ([(f, None) for f in os.listdir (path_to_watch)])
added = [f for f in after if not f in before]
removed = [f for f in before if not f in after]
if added:
print ("Added: ", ", ".join (added))
df = pd.DataFrame.from_dict(path_to_watch, orient = 'index')
df1 = pd.read_csv(df)
if removed: print ("Removed: ", ", ".join (removed))
before = after
如果您能帮我得到想要的结果,我将不胜感激。
【问题讨论】:
-
你为什么用from_dict?,希望你需要
df = pd.read_csv(os.path.join(path_to_watch, added)) -
我尝试使用您的代码,但出现错误:
TypeError: join() argument must be str or bytes, not 'list'。抱歉,如果这听起来像是业余错误,我是 python 新手
标签: python pandas csv dataframe dictionary