捕获行并用 python 修改它
Catch line and modify it with python
我是 python 的新手。
我目前正在尝试修改文件中的一行,这是在使用 linecache 捕获该行之后。
示例:
run_D = open('toto.dat','r')
lines = run_D.readlines()
print "Name of the file: ", run_D.name
seq=["%s'retrieve'"]
line_1 = linecache.getline('toto.dat', 51)
lines_runD = run_D.readlines()
run_D.close()
那么,我想修改这一行的内容:
lines_runD[50]="%s !yop \n".format(seq) #--> this part seems not working
fic = open('toto.dat','w')
fic.writelines(lines_runD)
fic.close()
我有这个错误:
IndexError: 列表索引超出范围
我尝试了很多格式类型,但遗憾的是它仍然无法正常工作。你有什么建议吗:)
谢谢。
我认为你混合了两个东西:linecache
和 readlines
。
1。行缓存
来自docs:
The linecache module allows one to get any line from any file, while attempting to optimize internally, using a cache, the common case where many lines are read from a single file.
这意味着,您可以 读取 行号 51 linecache
非常容易:
import linecache
line_1 = linecache.getline('toto.dat', 51)
print line_1
2。阅读线
您可以使用以下代码实现相同的目的:
f = open( 'toto.dat' )
flines = f.readlines()
f.close( )
print flines[50]
然后,你可以修改第51行如下:
flines[50] = ' new incoming text!\n '
f = open( 'toto.dat', 'wt' )
for l in flines:
f.write(l)
f.close( )
2.x。与
with 语句使处理文件更容易和更安全,因为它会为您关闭文件。
with open( 'toto.dat', 'r' ) as f:
flines = f.readlines()
print flines[50]
with open( 'toto.dat', 'wt' ) as f:
for l in flines:
f.write( l )
* 推荐
请注意,这些方法是低级的,一旦您真正了解自己在做什么,建议您将其用于学习基础知识或编写更复杂的函数。 Python 提供了许多输入输出库,具有许多有用的功能。只需搜索它们,您肯定会得到一些很好的例子。
例如检查以下问题以进一步学习:
How do I modify a text file in Python?
Search and replace a line in a file in Python
Open files in 'rt' and 'wt' modes
我是 python 的新手。 我目前正在尝试修改文件中的一行,这是在使用 linecache 捕获该行之后。
示例:
run_D = open('toto.dat','r')
lines = run_D.readlines()
print "Name of the file: ", run_D.name
seq=["%s'retrieve'"]
line_1 = linecache.getline('toto.dat', 51)
lines_runD = run_D.readlines()
run_D.close()
那么,我想修改这一行的内容:
lines_runD[50]="%s !yop \n".format(seq) #--> this part seems not working
fic = open('toto.dat','w')
fic.writelines(lines_runD)
fic.close()
我有这个错误:
IndexError: 列表索引超出范围
我尝试了很多格式类型,但遗憾的是它仍然无法正常工作。你有什么建议吗:)
谢谢。
我认为你混合了两个东西:linecache
和 readlines
。
1。行缓存
来自docs:
The linecache module allows one to get any line from any file, while attempting to optimize internally, using a cache, the common case where many lines are read from a single file.
这意味着,您可以 读取 行号 51 linecache
非常容易:
import linecache
line_1 = linecache.getline('toto.dat', 51)
print line_1
2。阅读线
您可以使用以下代码实现相同的目的:
f = open( 'toto.dat' )
flines = f.readlines()
f.close( )
print flines[50]
然后,你可以修改第51行如下:
flines[50] = ' new incoming text!\n '
f = open( 'toto.dat', 'wt' )
for l in flines:
f.write(l)
f.close( )
2.x。与
with 语句使处理文件更容易和更安全,因为它会为您关闭文件。
with open( 'toto.dat', 'r' ) as f:
flines = f.readlines()
print flines[50]
with open( 'toto.dat', 'wt' ) as f:
for l in flines:
f.write( l )
* 推荐
请注意,这些方法是低级的,一旦您真正了解自己在做什么,建议您将其用于学习基础知识或编写更复杂的函数。 Python 提供了许多输入输出库,具有许多有用的功能。只需搜索它们,您肯定会得到一些很好的例子。
例如检查以下问题以进一步学习:
How do I modify a text file in Python?
Search and replace a line in a file in Python
Open files in 'rt' and 'wt' modes