You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取文本文件报错,如何导入数据并设置指定列名?

问题分析与解决

1. 语法错误原因

你写的代码里,open语句的代码块中缺少循环关键字for,正确的循环写法应该是for line in mytxt:,这是导致语法报错的直接原因。

2. 更高效的数据导入方案(适配后续机器学习操作)

既然已经导入了pandas,直接用pandas的read_csv方法读取数据更高效,还能直接处理列名、分隔符和空行问题,具体步骤如下:

步骤1:整理列名

先把你提供的列名字符串转换成列表,去除多余空格:

column_names = [col.strip() for col in "PERSON_GENDER_CD| PERSON_AGE_NBR| HOUSEHOLD_INCOME_ID | DOG_WHISPERER| DOGS_101|BAD_DOG|PUPPIES_VS_BABIES|PUPPY_BOWL".split("|")]

步骤2:读取数据文件

使用pd.read_csv读取Databricks路径下的文本文件,指定分隔符为|,跳过空行,并设置列名:

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.cluster import KMeans

# 整理列名
column_names = [col.strip() for col in "PERSON_GENDER_CD| PERSON_AGE_NBR| HOUSEHOLD_INCOME_ID | DOG_WHISPERER| DOGS_101|BAD_DOG|PUPPIES_VS_BABIES|PUPPY_BOWL".split("|")]

# 读取数据,处理竖线分隔和空行
df = pd.read_csv("dbfs/FileStore/shared_uploads/ebXXXXX.com/modified_uverse_data.txt", 
                 sep="|", 
                 skip_blank_lines=True, 
                 names=column_names,
                 skipinitialspace=True)  # 去除每个字段前后的空格(如果有的话)

# 查看导入的数据
print(df.head())

3. 原代码的修复版本(如果只是想逐行读取)

如果你只是想测试逐行读取文件,修复语法错误后的代码如下:

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.cluster import KMeans

with open("dbfs/FileStore/shared_uploads/ebXXXXX.com/modified_uverse_data.txt") as mytxt:
    for line in mytxt:
        print(line.strip())  # strip()可以去掉每行末尾的换行符和空行

内容的提问来源于stack exchange,提问作者user22366511

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:58:36