首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python数据导入

Python数据导入
EN

Stack Overflow用户
提问于 2012-03-17 11:10:13
回答 3查看 1.2K关注 0票数 0

我使用以下代码在Python中导入数据:

代码语言:javascript
复制
 one=[]
 two=[]
 three=[]
 four=[]
 five=[]
 six=[]
 x=0
 for line in open('text.txt', 'r'):
     if x==2:
         column0, column1, column2, column3, column4, column5 = line.split(',')
 else:
    column0, column1, column2, column3, column4, column5 = line.split(' ')
    one.append(column0)
    two.append(column1)
    three.append(column2)
    four.append(column3)
    five.append(column4)
    six.append(column5)
    x=x+1

此代码导入此文本文件:

代码语言:javascript
复制
 1 2 3 4 5 6 
 1 2 3 4 5 6 
 1,2,3,4,5,6
 1 2 3 4 5 6
 1 2 3 4 5 6

但是我在如何导入下面的内容时遇到了很多麻烦

代码语言:javascript
复制
 1 2 3 4 5 6 
 1 2 3 4 5 6 
 1,2,3,
 4,5,6 
 1 2 3 4 5 6
 1 2 3 4 5 6

即使数据在第三行有一个分隔符,我也希望它以与第一个文本文件相同的方式导入。我尝试按行导入,然后使用第三行的变量数,但我无法使其正常工作。

有没有人知道任何资源或例子,或者可以帮助你?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-17 11:32:03

这里有一种方法可以把台词弄对。这不是一个完整的答案,但我认为它解决了你可能遇到的任何问题

代码语言:javascript
复制
fh  = open('Documents/import.txt').read()

for line in fh.split('\n'):
    print line.strip()
    splits = line.split()
    if  len(splits) ==1 and splits[0]== line.strip():
        splits = [item for item in line.strip().split(',') if item]
    print splits

哦..。没有读到你想要的东西试试这个

代码语言:javascript
复制
fh  = open('Documents/import.txt').read()
the_list = []
for line in fh.split('\n'):
    print line.strip()
    splits = line.split()
    if  len(splits) ==1 and splits[0]== line.strip():
        splits = line.strip().split(',')
    if splits:the_list.append(splits)

for i in range(len(the_list)):
    print the_list[i]
    if  the_list[i][-1]=='':
        the_list[i].pop(-1)
        the_list[i].extend(the_list[i+1])
        i += 1

print the_list
票数 1
EN

Stack Overflow用户

发布于 2012-03-17 11:15:06

  1. 你在StackOverflow上问了九个问题,结果只回答了其中一个?请对陌生人的好意表示感谢,accept some answers.
  2. Saying“我试过了,它不工作”是好的,但是它是如何失败的呢?错误消息是什么?如果程序的行为出乎意料,那么您实际上期望的是什么?读取逗号(空格?)的
  3. ?分离的数据,我认为你实际上想要python's csv module。使用适当的delimiter选项参数,它还将读取以空格分隔的数据,或者您可以在读取数据之前将空格替换为逗号。
票数 1
EN

Stack Overflow用户

发布于 2012-03-17 11:17:47

for line in open('text.txt', 'r'):遍历文件中的各行。它不会注意你的逗号。

如果您希望按元素而不是按行进行迭代,则必须使用不同的循环。

你可能想读这个问题:How to read numbers from file in Python?它展示了如何一次读取一个数字,忽略换行符。您需要使用pass a parameter to the split function命令来告诉它跳过逗号和空格。

附注:在您当前的代码中,if x==2:什么也不做。如果您真的想计算行数,则需要使用enumerate函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9746927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档