用python读取文本文件,对读出的每一行进行操作,这个怎么写?

Python014

用python读取文本文件,对读出的每一行进行操作,这个怎么写?,第1张

用python读取文本文件,对读出的每一行进行操作,写法如下:

f = open("test.txt", "r")

while True:

line = f.readline()

if line:

pass    # do something here

line=line.strip()

p=line.rfind('.')

filename=line[0:p]

print "create %s"%line

else:

break

f.close()

扩展资料:

Python将txt文件读取到一个字符串里的操作方法如下:

1、首先,添加Python文件和文本文件以在vscode中读取,如下图所示

2、其次,完成上述步骤后,在txt文件中写入一些内容以用于内容读取,只需将其写入即可,如下图所示。

3、接着,完成上述步骤后,必须导入os文件,以便可以在os中调用某些文件操作方法,如下图所示。

4、然后,完成上述步骤后,打开要读取的文件,并将读取的内容数据复制到字符串中,如下图所示。

5、随后,完成上述步骤后,打印字符串以显示内容,以方便参考,如下图所示。

6、接着,完成上述步骤后,运行jy.py文件,该文件将开始读取和打印内容,如下图所示。

7、最后,完成上述步骤后,可以看到已读取txt文件的内容,如下图所示。

有少量数据存在txt文件中,如何进行读取、写入和修改呢,今天小编就分享下:

python常用的读取文件函数有三种read()、readline()、readlines()

1、read() : 一次性读取所有文本

with open("1.txt", "r", encoding='utf-8') as f: #打开文本

data = f.read() #读取文本

print(data)

2、readline() : 读取行的内容

with open('1.txt', 'r', encoding='utf-8') as f:

data = f.readline()

print(data)

3、readlines():读取全部内容,以数列的格式返回结果,可以配合for循环使用。

with open('1.txt', 'r', encoding='utf-8') as f:

data = f.readlines()

print(data)

image.png

with open('1.txt', 'r', encoding='utf-8') as f:

for i in f.readlines():

i = ann.strip('\n') #去除文本中的换行符

print(i)

4、with open()写法与open()的区别

1666058828369926.png

image.png

open()完成后必须调用close()方法关闭文件,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件

数量也是有限的,由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。with open()则可以避免这样的情况。

5、python文件读写模式

r : 读取文件,若文件不存在则会报错

w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件

a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾

r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖

w+ : 可读,可写,文件不存在先创建,会覆盖

a+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾

rb:以二进制方式打开,只能读取文件。如果文件不存在,会发生异常

wb:以二进制方式打开,只能写入文件。如果文件不存在,创建该文件; 如果文件存在,会清空,在打开(覆盖)

rt:以文本读方式打开,只能读文件。不存在报错

wt:以文本写方式打开,只能写文件。 不存在创建;存在覆盖

rb+:以二进制方式打开,可读、写文件。如果文件不存在,会发生异常

wb+:以二进制方式打开,可读、写文件。如果文件不存在,创建该文件;如果文件存在,会清空,在打开(覆盖)

def find(seq):

    with open("2.txt") as fobj:

        for _ in fobj:

            ss = _.split(" ")  # 用空格分割

            if ss[0].isdigit():

                if int(ss[0]) == seq:

                    print _

if __name__ == '__main__':

    find(333)