0

这里的挑战包括将大型 txt 文件(有些是 70MB 大,总共 3GB 数据)合并成一个供 BI 系统读取的文件。有些行在多个文件中重复,合并文件需要有最新的行。

我不是开发人员,但我正在通过正确的方式学习来解决这个问题。与此同时,我正在尝试解决编码问题。这一次,我尝试了几个解决方案,下面的代码给了我一个有趣/有趣的结果:

import os
import io
import pandas as pd

merged_df = pd.DataFrame()
for file in os.listdir(r"C:\Users\username\Desktop\txt"):
    if file.endswith(".txt"):
        bytes = open(file, 'rb').read()
        merged_df = merged_df.append(pd.read_csv(io.StringIO(
            bytes.decode('utf-8')), sep="\t", parse_dates=['Time']))

print(len(merged_df))

我不断收到这个错误,它似乎得到了一个文件,但没有识别它,也没有在任何地方写任何东西。

Traceback (most recent call last):
  File "<pyshell#11>", line 3, in <module>
    bytes = open(file, 'rb').read()
FileNotFoundError: [Errno 2] No such file or directory: 'FILENAME.txt'

任何帮助是极大的赞赏!

4

1 回答 1

2

您的问题是os.listdir仅返回该文件夹中文件的文件名。它不返回完整路径。因此,open将在您运行脚本的文件夹中查找具有该名称的文件。您需要将该文件名转换为绝对路径,例如通过执行

file_path = os.path.join(r"C:\Users\username\Desktop\txt", file)
bytes = open(file_path, 'rb').read()

于 2019-09-16T17:27:41.240 回答