Python读取制表符分隔文件生成列表出错,输出仅显示首字符求助
问题分析与修复
你的问题核心在于没有把分割后的结果重新赋值给变量x,导致添加到列表k里的还是原始的整行字符串,而非分割后的列表。咱们一步步拆解问题:
错误点详解
- 你写了
x.strip().strip("").split("\t"),但这行代码仅执行了分割操作,却没有把分割得到的列表赋值回x。所以x依然是读取到的整行文本(比如第一行是完整的neurovaultcols_050817 1073字符串)。 - 当你把
x添加到k后,k里的每个元素都是字符串类型,而非列表。此时b[0]取的是字符串的第一个字符,自然会输出n。
修正后的代码
repo_dataset = open("G:\\My Drive\\single.txt") k = [] for x in repo_dataset: # 将分割后的列表重新赋值给x,替换原始字符串 x = x.strip().split("\t") # strip("")是多余的,strip()默认会去除首尾空白字符 k.append(x) repo_dataset.close() # 记得关闭文件,避免资源泄漏 for b in k: print(b[0]) # 现在会输出neurovaultcols_050817 print(b[1]) # 输出1073、1606
更推荐用with语句自动管理文件(无需手动关闭),代码更安全简洁:
k = [] with open("G:\\My Drive\\single.txt") as repo_dataset: for x in repo_dataset: x = x.strip().split("\t") k.append(x) for b in k: print(b[0]) print(b[1])
额外提醒
如果你的文件内容实际是空格分隔而非制表符,把split("\t")改成split()(不带参数的split会自动分割任意空白,包括空格、制表符、换行符等)会更稳妥。
内容的提问来源于stack exchange,提问作者nina_dev
相关产品推荐
相关产品推荐

