用vthread 编写一个写入文件的demo
时间: 2024-02-16 18:04:26 浏览: 93
好的,下面是一个使用vthread编写的写入文件的demo:
```python
import vthread
def write_file(file_path, content):
with open(file_path, 'w') as f:
f.write(content)
if __name__ == '__main__':
# 通过vthread.ThreadPool类创建一个线程池,最多同时执行5个线程
pool = vthread.ThreadPool(5)
# 要写入的文件路径
file_path = 'test.txt'
# 要写入的内容
content = 'Hello World!'
# 使用线程池执行任务
for i in range(10):
pool.submit(write_file, file_path, content)
# 等待所有任务执行完成
pool.join()
```
以上代码中,我们首先通过vthread.ThreadPool类创建了一个线程池,最多同时执行5个线程。然后定义了一个write_file函数,用于写入文件。最后使用线程池执行了10个写入文件的任务,并等待所有任务执行完成。在每个任务中,我们都调用了write_file函数,将相同的内容写入同一个文件中。
需要注意的是,这里的写入操作是覆盖写入,每次写入都会将文件中原有的内容清空。如果需要追加写入,可以将'w'改为'a'。
相关问题
1. 编写程序,读取文件demo_5.txt,并且在每一行的行尾加上行号之后,将新内容写入demo_5_new.txt。
要实现这个功能,可以使用Python编写一个简单的脚本。以下是一个示例代码:
```python
def add_line_numbers(input_file, output_file):
with open(input_file, 'r') as infile, open(output_file, 'w') as outfile:
for line_number, line in enumerate(infile, start=1):
outfile.write(f"{line.strip()} (Line {line_number})\n")
# 调用函数
add_line_numbers('demo_5.txt', 'demo_5_new.txt')
```
### 解释:
1. **打开文件**:使用 `with open` 语句分别打开输入文件和输出文件。`input_file` 是要读取的文件,`output_file` 是要写入的新文件。
2. **读取并处理每一行**:使用 `enumerate` 函数遍历文件的每一行,并从1开始计数行号。
3. **写入新内容**:将每行的内容加上行号后写入到新的文件中。
运行上述代码后,`demo_5_new.txt` 文件将会包含原始内容并在每行末尾添加行号。
编写程序并完成下面功能,打开一个文件如demo.py生成新文件demo_new.py
好的,可以使用 Python 的文件操作功能来实现这个功能。以下是实现代码:
```python
# 打开原文件
with open('demo.py', 'r') as f:
content = f.read()
# 新文件名
new_file = 'demo_new.py'
# 写入新文件
with open(new_file, 'w') as f:
f.write(content)
print(f'已生成新文件 {new_file}')
```
这段代码会读取名为 `demo.py` 的文件内容,然后将其写入到名为 `demo_new.py` 的新文件中。最后会输出一条提示信息,告知新文件已生成。
阅读全文