Python 处理文件时出错

Python 处理文件时出错,python,python-3.x,Python,Python 3.x,您好,我是python新手,正在尝试读取文本文件 该文件的格式如下。 注意\r代表回车符\n代表一条新线 有人能告诉我读取此文件的最佳方法吗?我正在尝试读取该文件,并对读入的每一行数据执行其他操作,然后写入一个新文件。我好像在5个字段的行上出错了 field1|field2|field3\r\n field1|field2|field3\r\n field1|field2|field3|field4|field5\r\n \r\n \r string 1\r \r\n \r string 2\r

您好,我是python新手,正在尝试读取文本文件

该文件的格式如下。 注意\r代表回车符\n代表一条新线

有人能告诉我读取此文件的最佳方法吗?我正在尝试读取该文件,并对读入的每一行数据执行其他操作,然后写入一个新文件。我好像在5个字段的行上出错了

field1|field2|field3\r\n
field1|field2|field3\r\n
field1|field2|field3|field4|field5\r\n
\r\n
\r
string 1\r
\r\n
\r
string 2\r
\r\n
\r
string 3\r
field1|field2|field3|field4|field5\r\n
\r\n
\r
string 1\r
\r\n
\r
string 2\r
\r\n
\r
string 3\r
这是实际的代码

with open('myFile.txt','r') as f:
    line = f.readlines(1);
    while line:
        line = f.readlines(1)    
        if not line:
            print('List is empty')
            continue
        else:
            numofPipes = line[0].count('|')

        if numofPipes == 95:
            newOutput = line[0].rstrip('\r').rstrip('\n') + '|||||||||^'
            print(newOutput)
        elif numofPipes == 103:
            newOutput = line[0].rstrip('\r').rstrip('\n') + '|'       
            # finish inserting code to continue to read lines until condition met
            reportText = f.realines(1)
            print(newOutput)
您可以使用f=openexample.txt,w打开文件+ 选项w意味着写,而+意味着它将创建一个新文件,如果它不存在,您也可以使用r来读取,或者使用a来追加

要写入该文件,可以使用f.write,就像print语句一样

要读取整个文件,可以使用f.readlines

要部分读取文件,可以使用f.readbytes,其中bytes是要从打开的文件中读取的字节数

要检查文件中的位置,可以使用f.tell

要更改位置,请使用f.seekoffset[,from],offset参数指示要移动的字节数。from参数指定要从中移动字节的引用位置

要重命名文件,您可以使用os.renameoriginalName.txt、newName.txt,为此您需要导入os

最后,您可以使用os.removefileName.txt删除该文件,同样,您需要导入os


python中的文件就是这样,这取决于您试图从文件中提取什么以及数据将如何转换。典型的基于行的处理循环如下所示:

with open('myfile') as file:
  for line in file:
    line = line.rstrip('\n')
    if line:
      fields = line.split('|')
      # Do something with the fields
      print(fields)

你能提供更多关于你想对这个文件做什么的信息,以及你当前使用的代码吗?你能展示你正在尝试的代码吗?怎么了?你期望的结果是什么,你得到了什么?仅仅看到文件的内容还不足以让我们知道您想对它做什么。根据您与我们共享的内容,我们只能说您应该循环文件的行,处理每一行,然后将其写入新文件…我认为我的主要问题是回车。总体目标是读取文件并将错误数据合并到前面的记录中。不带记录的坏数据用于之前的记录。字符串1、字符串2和字符串3都应位于上一条记录上,以便它们都在新文件的同一行上打印。