gpt4 book ai didi

Python TypeError : expected str, 字节或 os.PathLike 对象,而不是 _io.TextIOWrapper

转载 作者:行者123 更新时间:2023-12-03 21:58:56 32 4
gpt4 key购买 nike

我正在尝试将管道分隔的文本文件转换为 CSV 文件,然后遍历并打印 CSV 文件。这是我的代码:


with open("...somefile.txt", "r") as text_file:
text_reader = csv.reader(text_file, delimiter='|')
with open("...somefile.csv", 'w') as csv_file:
csv_writer = csv.writer(csv_file, delimiter=',')
csv_writer.writerows(text_reader)

with open (csv_file, 'r') as f:
reader = csv.reader (f, delimiter=',')
for row in reader:
print(row)

但是,我收到此错误消息:
----> 9 with open (csv_file, 'r') as f:
10 reader = csv.reader (f, delimiter=',')
11 for row in reader:

TypeError: expected str, bytes or os.PathLike object, not _io.TextIOWrapper

谁能解释一下这是什么意思?

另外,如果我要把它变成一个函数,我怎么能把文件名作为输入,然后更改文件以添加 .csv 扩展名 wen 转换为 csv 文件?

谢谢

最佳答案

你路过 open一个已经打开的文件,而不是你创建的文件的路径。

代替:

with open (csv_file, 'r') as f:


with open ("...somefile.csv", 'r') as f:

要更改函数中的扩展名:
import pathlib

def txt_to_csv(fname):
new_name = f'{Path(fname).stem}.csv'

with open(fname, "r") as text_file:
text_reader = csv.reader(text_file, delimiter='|')
with open(new_name, 'w') as csv_file:
csv_writer = csv.writer(csv_file, delimiter=',')
csv_writer.writerows(text_reader)

with open (new_name, 'r') as f:
reader = csv.reader (f, delimiter=',')
for row in reader:
print(row)

关于Python TypeError : expected str, 字节或 os.PathLike 对象,而不是 _io.TextIOWrapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60705542/

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