pyhton 遍历文件目录下txt文件,在文件的第20行写入“source ../abc.cfg”
时间: 2024-02-18 21:01:18 浏览: 26
可以使用Python的os和io库来遍历文件目录和操作文件。具体实现如下:
```python
import os
# 遍历文件目录下的txt文件
dir_path = 'your_directory_path'
for root, dirs, files in os.walk(dir_path):
for file in files:
if file.endswith('.txt'):
# 在文件的第20行写入指定内容
file_path = os.path.join(root, file)
with open(file_path, 'r+') as f:
lines = f.readlines()
if len(lines) >= 20:
lines[19] = 'source ../abc.cfg\n'
f.seek(0)
f.writelines(lines)
```
上述代码中,首先使用os.walk()函数遍历文件目录下的所有文件,然后对于每个txt文件,打开文件并读取所有行。如果文件行数大于等于20,则将第20行替换为指定内容,并保存文件。
相关问题
pyhton 遍历文件目录下txt文件,在含有内容“source ../abc.cfg”的行的下一行写入“”run“”
可以使用Python的os和re模块来实现遍历文件目录下的txt文件,并使用正则表达式来匹配包含指定内容的行,并在该行的下一行写入新内容。
以下是示例代码:
``` python
import os
import re
root_path = "/path/to/root/directory" # 修改为实际的根目录路径
for subdir, dirs, files in os.walk(root_path):
for file in files:
if file.endswith(".txt"):
file_path = os.path.join(subdir, file)
with open(file_path, "r+") as f:
lines = f.readlines()
for i, line in enumerate(lines):
if re.search(r"source\s+\.\./abc\.cfg", line):
lines.insert(i+1, "run\n")
f.seek(0)
f.writelines(lines)
break
```
这段代码会遍历指定路径下的所有子目录和文件,找到以".txt"为后缀的文件,读取文件内容并按行处理。对于每一行,使用正则表达式匹配是否包含指定内容。如果匹配成功,则在该行的下一行插入新内容"run"。最后将修改后的内容写回文件中。
pyhton写入文件操作
Python 中可以使用 `open()` 函数来打开文件并进行读写操作,具体的写入操作可以使用文件对象的 `write()` 方法。
下面是一个简单的示例代码,将一些内容写入一个名为 `test.txt` 的文件中:
```python
# 打开文件,如果文件不存在则创建
f = open("test.txt", "w")
# 写入内容
f.write("Hello, world!\n")
f.write("This is a test file.\n")
# 关闭文件
f.close()
```
上述代码中,第一个参数 `"test.txt"` 是文件的路径,第二个参数 `"w"` 表示以写入模式打开文件。如果文件不存在,则会自动创建一个新文件;如果文件已经存在,那么原有的内容会被清空。
`write()` 方法会将指定的字符串写入文件中,并返回写入的字符数。注意每次写入需要加上换行符 `\n`,否则写入的内容会连成一行。
最后,一定要记得使用 `close()` 方法关闭文件,否则可能会导致文件数据丢失或不完整。为了避免这种情况,我们可以使用 `with` 语句来自动关闭文件,如下所示:
```python
with open("test.txt", "w") as f:
f.write("Hello, world!\n")
f.write("This is a test file.\n")
```
使用 `with` 语句可以确保文件在使用完毕后自动关闭,而不需要显式调用 `close()` 方法。