python - 在Python中对同一目录中的多个文件进行for循环
问题描述
所以我已经尝试在这里检查关于(几乎)相同主题的其他问题,但是我没有找到解决我问题的东西。
基本上,我在 Python 中有一段代码尝试将文件作为数据框打开并执行一些眼动追踪功能(PyGaze)。我有 1000 个文件需要分析,并想创建一个 for 循环来自动在所有文件上执行我的代码。
代码如下:
os.chdir("/Users/Documents//Analyse/Eye movements/Python - Eye Analyse")
directory = '/Users/Documents/Analyse/Eye movements/R - Filtering Data/Filtered_data/Filtered_data_test'
for files in glob.glob(os.path.join(directory,"*.csv")):
#Downloas csv, plot
df = pd.read_csv(files, parse_dates = True)
#Plot raw data
plt.plot(df['eye_x'],df['eye_y'], 'ro', c="red")
plt.ylim([0,1080])
plt.xlim([0,1920])
#Fixation analysis
from detectors import fixation_detection
fixations_data = fixation_detection(df['eye_x'],df['eye_y'], df['time'],maxdist=25, mindur=100)
Efix_data = fixations_data[1]
numb_fixations = len(Efix_data) #number of fixations
fixation_start = [i[0] for i in Efix_data]
fixation_stop = [i[1] for i in Efix_data]
fixation = {'start' : fixation_start, 'stop': fixation_stop}
fixation_frame = pd.DataFrame(data=fixation)
fixation_frame['difference'] = fixation_frame['stop'] - fixation_frame['start']
mean_fixation_time = fixation_frame['difference'].mean() #mean fixation time
final = {'number_fixations' : [numb_fixations], 'mean_fixation_time': [mean_fixation_time]}
final_frame = pd.DataFrame(data=final)
#write everything in one document
final_frame.to_csv("/Users/Documents/Analyse/Eye movements/final_data.csv")
代码正在运行(没有错误),但是:它仅针对第一个文件运行。不会为文件夹/目录中存在的其他文件运行代码。我看不出我的错误在哪里?
解决方案
您的输出文件名是恒定的,因此它会被 for 循环的每次迭代覆盖。尝试以下而不是最后一行,它会以“追加”模式打开文件:
#write everything in one document
with open("/Users/Documents/Analyse/Eye movements/final_data.csv", "a") as f:
final_frame.to_csv(f, header=False)
推荐阅读
- alloy - 如何使用 CompUtil 解析插件
- python - Conda 命令(即:conda env list、sypder、jupyter lab)在“conda update conda”之后不再工作
- powershell - PowerShell FTPS csv文件
- android - 我的应用程序名称未显示在活动之上。显示“com.example.(appname).(file name)
- java - 无法调整 JInternalFrame 的大小
- django - 在 Django 的同一页面上显示项目列表,包括项目详细信息
- android - Gradle 同步失败:无法创建父目录 - Android Studio
- sas - 为什么我收到语法错误 22-322 和错误 76-322
- javascript - TypeScript:元素隐含地具有 RegExp 的“任何”类型
- javascript - “无法读取 null 的属性 'avatarURL'”错误