Python逐行读取文件内容 Python逐行读取文件内容 python逐行读取文本

Python逐行读取文件内容

代码来源: Python参考手册

复制代码
复制代码
f = open("foo.txt")             # 返回一个文件对象
line = f.readline() # 调用文件的 readline()方法
while line:
print line, # 后面跟 ',' 将忽略换行符
# print(line, end = '')   # 在 Python 3中使用
line = f.readline()

f.close()
复制代码
复制代码

也可以写成以下更简洁的形式

for line in open("foo.txt"):
print line,

更详细的文件按行读取操作可以参考:http://www.cnblogs.com/xuxn/archive/2011/07/27/read-a-file-with-python.html

复制代码
复制代码
1. 最基本的读文件方法:
?
# File: readline-example-1.py

file = open("sample.txt")

while 1:
line = file.readline()
if not line:
break
pass # do something
  一行一行得从文件读数据,显然比较慢;不过很省内存。
  在我的机器上读10M的sample.txt文件,每秒大约读32000行
2. 用fileinput模块
?
# File: readline-example-2.py

import fileinput

for line in fileinput.input("sample.txt"):
pass
  写法简单一些,不过测试以后发现每秒只能读13000行数据,效率比上一种方法慢了两倍多……
3. 带缓存的文件读取
?
# File: readline-example-3.py

file = open("sample.txt")

while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something
  这个方法真的更好吗?事实证明,用同样的数据测试,它每秒可以读96900行数据!效率是第一种方法的3倍,第二种方法的7倍!
————————————————————————————————————————————————————————————
  在Python 2.2以后,我们可以直接对一个file对象使用for循环读每行数据:
?
# File: readline-example-5.py

file = open("sample.txt")

for line in file:
pass # do something
  而在Python 2.1里,你只能用xreadlines迭代器来实现:
?
# File: readline-example-4.py

file = open("sample.txt")

for line in file.xreadlines():
pass # do something
复制代码
 
python逐行读取文本
 

一、使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。

二、需要导入import os

三、下面是逐行读取文件内容的三种方法:

1、第一种方法:

[python] view plain copy

  

复制代码
f = open("foo.txt")               # 返回一个文件对象   
line = f.readline()               # 调用文件的 readline()方法 while line: print line, # 后面跟 ',' 将忽略换行符 #print(line, end = '')  # 在 Python 3 中使用 line = f.readline() f.close()
复制代码

2、第二种方法:
  与第3种方法对比, 并非一次性将全部的文件内容载入到内存里,而是在迭代的时候,循环到哪一行才将哪一行读入内存。这里涉及到一个新的概念-迭代器。
  第二种方法是文本文件读取的最佳选择,它简单,且对任意大小的文件都有效,因为他不会一次性把整个文件都载入到内存里,相反第三种方法存在内存压力过大的问题。
for line in open("foo.txt"): print line, 

3、第三种方法:
  
f = open("c:\\1.txt","r") lines = f.readlines() #读取全部内容 ,并以列表方式返回 for line in lines print line 

四、一次性读取整个文件内容:

 

  

file_object = open('thefile.txt')  
try: all_the_text = file_object.read() finally: file_object.close()

五、区别对待读取文本 和 二进制:

1、如果是读取文本

  
    读文本文件  
    input = open('data', 'r') #第二个参数默认为r input = open('data') 

2、如果是读取二进制
 
  
input = open('data', 'rb') 

 读固定字节

 

chunk = input.read(100)

python3 按行读取并进行编辑
            
             def test(file):    with open(file, 'r+') as a:        with open(file, 'r+') as b:            for line in a:                b.write('hello ' + line)

1、文件打开格式不一定是“r+”,但是必须指针落点从头开始,所有不能说“a”,因为“w”会把源文件内容清空,也不行

第一个文件打开格式可以是:r,r+

第二个文件打开格式可以是:r+

2、文件必须open两次,因为每一次指针落点都要从头开始

3、r+模式write时会覆盖原来内容,但是

在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。
————————————————

需要安装xlwt库,可以用如下命令安装:
pip install xlwt
1
示例文本:
100 -494 td_error 0.6692215
200 318 td_error 0.57682794
300 57 td_error 0.45037615
400 260 td_error 0.42214713
500 586 td_error 0.45073098
600 615 td_error 0.4728373
700 731 td_error 0.48083866
800 802 td_error 0.3751492
900 440 td_error 0.4249844
1000 430 td_error 0.36427215
12345678910
参考代码:
import xlwt
import codecs

input_txt = 'demo.txt'
output_excel = 'demo.xls'
sheetName = 'Sheet1'
start_row = 0
start_col = 0

wb = xlwt.Workbook(encoding = 'utf-8')
ws = wb.add_sheet(sheetName)

f = open(input_txt, encoding = 'utf-8')

row_excel = start_row
for line in f:
    line = line.strip('\n')
    line = line.split(' ')
   
    print(line)

    col_excel = start_col
    len_line = len(line)
    for j in range(len_line):
        print (line[j])
        ws.write(row_excel,col_excel,line[j])
        col_excel += 1
        wb.save(output_excel)

    row_excel += 1

f.close
1234567891011121314151617181920212223242526272829303132
代码执行完后,会生成一个excel文件
————————————————

代码来源: Python参考手册

复制代码
复制代码
f = open("foo.txt")             # 返回一个文件对象
line = f.readline() # 调用文件的 readline()方法
while line:
print line, # 后面跟 ',' 将忽略换行符
# print(line, end = '')   # 在 Python 3中使用
line = f.readline()

f.close()
复制代码
复制代码

也可以写成以下更简洁的形式

for line in open("foo.txt"):
print line,

更详细的文件按行读取操作可以参考:http://www.cnblogs.com/xuxn/archive/2011/07/27/read-a-file-with-python.html

复制代码
复制代码
1. 最基本的读文件方法:
?
# File: readline-example-1.py

file = open("sample.txt")

while 1:
line = file.readline()
if not line:
break
pass # do something
  一行一行得从文件读数据,显然比较慢;不过很省内存。
  在我的机器上读10M的sample.txt文件,每秒大约读32000行
2. 用fileinput模块
?
# File: readline-example-2.py

import fileinput

for line in fileinput.input("sample.txt"):
pass
  写法简单一些,不过测试以后发现每秒只能读13000行数据,效率比上一种方法慢了两倍多……
3. 带缓存的文件读取
?
# File: readline-example-3.py

file = open("sample.txt")

while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something
  这个方法真的更好吗?事实证明,用同样的数据测试,它每秒可以读96900行数据!效率是第一种方法的3倍,第二种方法的7倍!
————————————————————————————————————————————————————————————
  在Python 2.2以后,我们可以直接对一个file对象使用for循环读每行数据:
?
# File: readline-example-5.py

file = open("sample.txt")

for line in file:
pass # do something
  而在Python 2.1里,你只能用xreadlines迭代器来实现:
?
# File: readline-example-4.py

file = open("sample.txt")

for line in file.xreadlines():
pass # do something
复制代码
 
python逐行读取文本
 

一、使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。

二、需要导入import os

三、下面是逐行读取文件内容的三种方法:

1、第一种方法:

[python] view plain copy

  

复制代码
f = open("foo.txt")               # 返回一个文件对象   
line = f.readline()               # 调用文件的 readline()方法 while line: print line, # 后面跟 ',' 将忽略换行符 #print(line, end = '')  # 在 Python 3 中使用 line = f.readline() f.close()
复制代码

2、第二种方法:
  与第3种方法对比, 并非一次性将全部的文件内容载入到内存里,而是在迭代的时候,循环到哪一行才将哪一行读入内存。这里涉及到一个新的概念-迭代器。
  第二种方法是文本文件读取的最佳选择,它简单,且对任意大小的文件都有效,因为他不会一次性把整个文件都载入到内存里,相反第三种方法存在内存压力过大的问题。
for line in open("foo.txt"): print line, 

3、第三种方法:
  
f = open("c:\\1.txt","r") lines = f.readlines() #读取全部内容 ,并以列表方式返回 for line in lines print line 

四、一次性读取整个文件内容:

 

  

file_object = open('thefile.txt')  
try: all_the_text = file_object.read() finally: file_object.close()

五、区别对待读取文本 和 二进制:

1、如果是读取文本

  
    读文本文件  
    input = open('data', 'r') #第二个参数默认为r input = open('data') 

2、如果是读取二进制
 
  
input = open('data', 'rb') 

 读固定字节

 

chunk = input.read(100)

python3 按行读取并进行编辑
            
             def test(file):    with open(file, 'r+') as a:        with open(file, 'r+') as b:            for line in a:                b.write('hello ' + line)

1、文件打开格式不一定是“r+”,但是必须指针落点从头开始,所有不能说“a”,因为“w”会把源文件内容清空,也不行

第一个文件打开格式可以是:r,r+

第二个文件打开格式可以是:r+

2、文件必须open两次,因为每一次指针落点都要从头开始

3、r+模式write时会覆盖原来内容,但是

在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。
————————————————

需要安装xlwt库,可以用如下命令安装:
pip install xlwt
1
示例文本:
100 -494 td_error 0.6692215
200 318 td_error 0.57682794
300 57 td_error 0.45037615
400 260 td_error 0.42214713
500 586 td_error 0.45073098
600 615 td_error 0.4728373
700 731 td_error 0.48083866
800 802 td_error 0.3751492
900 440 td_error 0.4249844
1000 430 td_error 0.36427215
12345678910
参考代码:
import xlwt
import codecs

input_txt = 'demo.txt'
output_excel = 'demo.xls'
sheetName = 'Sheet1'
start_row = 0
start_col = 0

wb = xlwt.Workbook(encoding = 'utf-8')
ws = wb.add_sheet(sheetName)

f = open(input_txt, encoding = 'utf-8')

row_excel = start_row
for line in f:
    line = line.strip('\n')
    line = line.split(' ')
   
    print(line)

    col_excel = start_col
    len_line = len(line)
    for j in range(len_line):
        print (line[j])
        ws.write(row_excel,col_excel,line[j])
        col_excel += 1
        wb.save(output_excel)

    row_excel += 1

f.close
1234567891011121314151617181920212223242526272829303132
代码执行完后,会生成一个excel文件
————————————————

复制代码
复制代码
f = open("foo.txt")             # 返回一个文件对象
line = f.readline() # 调用文件的 readline()方法
while line:
print line, # 后面跟 ',' 将忽略换行符
# print(line, end = '')   # 在 Python 3中使用
line = f.readline()

f.close()
复制代码
复制代码

也可以写成以下更简洁的形式

for line in open("foo.txt"):
print line,

更详细的文件按行读取操作可以参考:http://www.cnblogs.com/xuxn/archive/2011/07/27/read-a-file-with-python.html

复制代码
复制代码
1. 最基本的读文件方法:
?
# File: readline-example-1.py

file = open("sample.txt")

while 1:
line = file.readline()
if not line:
break
pass # do something
  一行一行得从文件读数据,显然比较慢;不过很省内存。
  在我的机器上读10M的sample.txt文件,每秒大约读32000行
2. 用fileinput模块
?
# File: readline-example-2.py

import fileinput

for line in fileinput.input("sample.txt"):
pass
  写法简单一些,不过测试以后发现每秒只能读13000行数据,效率比上一种方法慢了两倍多……
3. 带缓存的文件读取
?
# File: readline-example-3.py

file = open("sample.txt")

while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something
  这个方法真的更好吗?事实证明,用同样的数据测试,它每秒可以读96900行数据!效率是第一种方法的3倍,第二种方法的7倍!
————————————————————————————————————————————————————————————
  在Python 2.2以后,我们可以直接对一个file对象使用for循环读每行数据:
?
# File: readline-example-5.py

file = open("sample.txt")

for line in file:
pass # do something
  而在Python 2.1里,你只能用xreadlines迭代器来实现:
?
# File: readline-example-4.py

file = open("sample.txt")

for line in file.xreadlines():
pass # do something
复制代码
 
python逐行读取文本
 

一、使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。

二、需要导入import os

三、下面是逐行读取文件内容的三种方法:

1、第一种方法:

[python] view plain copy

  

复制代码
f = open("foo.txt")               # 返回一个文件对象   
line = f.readline()               # 调用文件的 readline()方法 while line: print line, # 后面跟 ',' 将忽略换行符 #print(line, end = '')  # 在 Python 3 中使用 line = f.readline() f.close()
复制代码

2、第二种方法:
  与第3种方法对比, 并非一次性将全部的文件内容载入到内存里,而是在迭代的时候,循环到哪一行才将哪一行读入内存。这里涉及到一个新的概念-迭代器。
  第二种方法是文本文件读取的最佳选择,它简单,且对任意大小的文件都有效,因为他不会一次性把整个文件都载入到内存里,相反第三种方法存在内存压力过大的问题。
for line in open("foo.txt"): print line, 

3、第三种方法:
  
f = open("c:\\1.txt","r") lines = f.readlines() #读取全部内容 ,并以列表方式返回 for line in lines print line 

四、一次性读取整个文件内容:

 

  

file_object = open('thefile.txt')  
try: all_the_text = file_object.read() finally: file_object.close()

五、区别对待读取文本 和 二进制:

1、如果是读取文本

  
    读文本文件  
    input = open('data', 'r') #第二个参数默认为r input = open('data') 

2、如果是读取二进制
 
  
input = open('data', 'rb') 

 读固定字节

 

chunk = input.read(100)

python3 按行读取并进行编辑
            
             def test(file):    with open(file, 'r+') as a:        with open(file, 'r+') as b:            for line in a:                b.write('hello ' + line)

1、文件打开格式不一定是“r+”,但是必须指针落点从头开始,所有不能说“a”,因为“w”会把源文件内容清空,也不行

第一个文件打开格式可以是:r,r+

第二个文件打开格式可以是:r+

2、文件必须open两次,因为每一次指针落点都要从头开始

3、r+模式write时会覆盖原来内容,但是

在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。
————————————————

需要安装xlwt库,可以用如下命令安装:
pip install xlwt
1
示例文本:
100 -494 td_error 0.6692215
200 318 td_error 0.57682794
300 57 td_error 0.45037615
400 260 td_error 0.42214713
500 586 td_error 0.45073098
600 615 td_error 0.4728373
700 731 td_error 0.48083866
800 802 td_error 0.3751492
900 440 td_error 0.4249844
1000 430 td_error 0.36427215
12345678910
参考代码:
import xlwt
import codecs

input_txt = 'demo.txt'
output_excel = 'demo.xls'
sheetName = 'Sheet1'
start_row = 0
start_col = 0

wb = xlwt.Workbook(encoding = 'utf-8')
ws = wb.add_sheet(sheetName)

f = open(input_txt, encoding = 'utf-8')

row_excel = start_row
for line in f:
    line = line.strip('\n')
    line = line.split(' ')
   
    print(line)

    col_excel = start_col
    len_line = len(line)
    for j in range(len_line):
        print (line[j])
        ws.write(row_excel,col_excel,line[j])
        col_excel += 1
        wb.save(output_excel)

    row_excel += 1

f.close
1234567891011121314151617181920212223242526272829303132
代码执行完后,会生成一个excel文件
————————————————

一、使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。

二、需要导入import os

三、下面是逐行读取文件内容的三种方法:

1、第一种方法:

[python] view plain copy

  

复制代码
f = open("foo.txt")               # 返回一个文件对象   
line = f.readline()               # 调用文件的 readline()方法 while line: print line, # 后面跟 ',' 将忽略换行符 #print(line, end = '')  # 在 Python 3 中使用 line = f.readline() f.close()
复制代码

2、第二种方法:
  与第3种方法对比, 并非一次性将全部的文件内容载入到内存里,而是在迭代的时候,循环到哪一行才将哪一行读入内存。这里涉及到一个新的概念-迭代器。
  第二种方法是文本文件读取的最佳选择,它简单,且对任意大小的文件都有效,因为他不会一次性把整个文件都载入到内存里,相反第三种方法存在内存压力过大的问题。
for line in open("foo.txt"): print line, 

3、第三种方法:
  
f = open("c:\\1.txt","r") lines = f.readlines() #读取全部内容 ,并以列表方式返回 for line in lines print line 

四、一次性读取整个文件内容:

 

  

file_object = open('thefile.txt')  
try: all_the_text = file_object.read() finally: file_object.close()

五、区别对待读取文本 和 二进制:

1、如果是读取文本

  
    读文本文件  
    input = open('data', 'r') #第二个参数默认为r input = open('data') 

2、如果是读取二进制
 
  
input = open('data', 'rb') 

 读固定字节

 

chunk = input.read(100)

python3 按行读取并进行编辑
            
             def test(file):    with open(file, 'r+') as a:        with open(file, 'r+') as b:            for line in a:                b.write('hello ' + line)

1、文件打开格式不一定是“r+”,但是必须指针落点从头开始,所有不能说“a”,因为“w”会把源文件内容清空,也不行

第一个文件打开格式可以是:r,r+

第二个文件打开格式可以是:r+

2、文件必须open两次,因为每一次指针落点都要从头开始

3、r+模式write时会覆盖原来内容,但是

在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。
————————————————

需要安装xlwt库,可以用如下命令安装:
pip install xlwt
1
示例文本:
100 -494 td_error 0.6692215
200 318 td_error 0.57682794
300 57 td_error 0.45037615
400 260 td_error 0.42214713
500 586 td_error 0.45073098
600 615 td_error 0.4728373
700 731 td_error 0.48083866
800 802 td_error 0.3751492
900 440 td_error 0.4249844
1000 430 td_error 0.36427215
12345678910
参考代码:
import xlwt
import codecs

input_txt = 'demo.txt'
output_excel = 'demo.xls'
sheetName = 'Sheet1'
start_row = 0
start_col = 0

wb = xlwt.Workbook(encoding = 'utf-8')
ws = wb.add_sheet(sheetName)

f = open(input_txt, encoding = 'utf-8')

row_excel = start_row
for line in f:
    line = line.strip('\n')
    line = line.split(' ')
   
    print(line)

    col_excel = start_col
    len_line = len(line)
    for j in range(len_line):
        print (line[j])
        ws.write(row_excel,col_excel,line[j])
        col_excel += 1
        wb.save(output_excel)

    row_excel += 1

f.close
1234567891011121314151617181920212223242526272829303132
代码执行完后,会生成一个excel文件
————————————————

猜你喜欢

转载自www.cnblogs.com/xinxihua/p/12609092.html