【问题标题】:Unable to check for space, new line and delimiter from text file - python无法从文本文件中检查空格、换行符和分隔符 - python
【发布时间】:2017-07-27 13:13:24
【问题描述】:

文本文件有多行,如下所示:

01      19-07-2000      09:30:40        'fe2962545516         5001
01      19-07-2000      09:30:40        'fe2962545516         5001
01      19-07-2000      09:30:40        'fe2962545516         5001
01      19-07-2000      09:30:40        'fe2962545516         5001

我的代码:

ReadFile = open(file,'r')
read = ReadFile.read()
print(read.strip())

问题是python不会读取所有值之间的空格,也不会读取下一行的新行。如果我把它放在一个列表中

res=[]
read.append(res)
print(res)

它是作为 res[0] 而不是 res[1..x] 插入的。

我想要做的是读取文本文件并创建一个包含 2,3 和 4 列的新文件。我有 100 个要读取的自动生成文件,因此复制/粘贴另一个文本文件中的值是不是一个可行的选择。

【问题讨论】:

  • 您的意思是res.append(read)?你应该看看 csv 模块。
  • 它以 res[0] 而不是 res[1..x] 的形式读取和插入。它写在Q
  • 字符串没有append 方法,read.append 是一个错误。您的 Q 代码无效。

标签: python


【解决方案1】:

读取文件并将其附加到数组中:

with open(file) as f:
    res = f.readlines()
res = [x.strip() for x in res] 

逐行打印数组:

for i in res:
    print i

打印第 2 行:

print res[2]

【讨论】:

  • 这就是问题所在,它是一个单独的项目并且不会读取新行
  • 您以Text File has multiple lines 开始您的问题。那么?
  • OP 有ReadFile.read() - 将整个文件作为一个字符串读取。这个答案有f.readlines(),它创建了一个行列表。
  • 是的,请检查,我还写了“问题是python没有读取所有值之间的空格,也没有读取下一行的新行。”
  • OP,是的,我们都可以阅读您所写的内容。并不意味着我们了解其中任何一个!
【解决方案2】:

如果您想读取一个文件并将其转换为仅存在中间列的另一个文件,您可以这样做:

with open(ifile) as f:
    res = f.readlines()  # Read whole file as lines

res = [x.strip() for x in res] # Remove line feeds

res = [' '.join(x.split()[1:-1]) for x in res] # Remove first and last columns

with open(ofile,'w') as f:
    f.write("\n".join(res))  # Write to a different file with line feeds

【讨论】:

    猜你喜欢
    • 2010-10-03
    • 1970-01-01
    • 2021-12-17
    • 2013-05-29
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多