gpt4 book ai didi

python - 错误消息 "TypeError: expected str, bytes or os.PathLike object, not list",而代码与工作版本基本相同

转载 作者:行者123 更新时间:2023-12-01 01:35:49 26 4
gpt4 key购买 nike

我是一个编程新手,几天前才开始使用 python 3.x。另外,我以前从未主动使用过这个网站,尽管它已经多次在我陷入困境时救了我,所以如果我的问题格式不是最好的,请原谅我。

我的目标是通读 x .csv 文件并将我想要的数据绘制成图表。该程序的第一个版本已经运行:

import glob
import csv
import matplotlib.pyplot as plt
from datetime import datetime


files = glob.glob('C:\\Users\Serdar\Desktop\SEMINARARBEIT\Twitch\Twitch\Summary\*.csv')
a = "Fortnite"

listViewers = []
listTimestamp=[]


for x in range(4519):
csv_file = csv.reader(open(files[x], "r"), delimiter=",")

for row in csv_file:
if a == row[1]:
datetime_object = datetime.strptime(row[4], '%Y-%m-%d %H:%M:%S')
listTimestamp.append(datetime_object)
listViewers.append(float(row[2]))


t = listTimestamp
s = listViewers
plt.plot(t, s, 'r')

plt.gcf().autofmt_xdate()
plt.xlabel('Time')
plt.ylabel('Viewers')
plt.title('Fortnite: Viewers over Time')
plt.grid(True)
plt.show()

在这里,我扫描了 4500 个文件并绘制了一个图表。这里没问题。在第二个程序中,我只想获取一个 .csv 文件(它是另一个文件,其数据结构与之前的 4500 个文件不同)并以相同的方式处理它。

这是我在标题中收到错误的地方。这是代码:

import glob
import csv
import matplotlib.pyplot as plt


file = glob.glob('C:\\Users\Serdar\Desktop\SEMINARARBEIT\Twitch\Twitch\Stream\1529010392.472129.csv')
a = "Fortnite"

listViewers = []
listStreamers=[]

csv_file2 = csv.reader(open(file, "r"), delimiter=",")
for row in csv_file2:
if a == row[1]:

listStreamers.append(row[23])
listViewers.append(float(row[10]))


t = listStreamers
s = listViewers
plt.plot(t, s, 'r')

plt.gcf().autofmt_xdate()
plt.xlabel('Streamers')
plt.ylabel('Viewers')
plt.title('Fortnite: Viewers over Time')
plt.grid(True)
plt.show()

我知道我正在做一些事情,比如在“csv_file2”中保存列表类型对象,而它需要字符串或字节等。但我不知道与第一个代码的区别在哪里。鉴于我缺乏经验,这可能是我没有看到的一件微不足道的事情,但我怀疑在第二个代码的文件中,我在某些地方将“[]”作为值。难道这被视为一个 list ?另一种理论可能是第二个文件批处理包含“ˆÐ”等字符,这也可能是一个问题?

我真的不确定,但我希望你能帮助我

最佳答案

您遇到的问题是因为 glob.glob always returns a list of files ,您的代码在第一个版本的代码中可以正确处理,但在第二个版本中则不能。由于您指定了一个特定文件,因此 glob.glob 返回一个包含一个对象的列表。只需更改代码以将文件变量视为列表,它应该可以正常工作:

csv_file2 = csv.reader(open(file[0], "r"), delimiter=",")

关于python - 错误消息 "TypeError: expected str, bytes or os.PathLike object, not list",而代码与工作版本基本相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52408261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com