pyton 读取目录下的txt 一个可以一个报错 FileNotFoundError: [Errno 2] No such file or directory: 'jd.com.txt'
时间: 2024-01-07 22:48:50 浏览: 74
您可以使用以下代码来读取目录下的txt文件:
```python
import os
directory = "your_directory_path"
for filename in os.listdir(directory):
if filename.endswith(".txt"):
file_path = os.path.join(directory, filename)
with open(file_path, "r") as file:
data = file.read()
# 这里可以对文件内容进行处理
else:
continue
```
请确保路径和文件名正确并存在于目录中。如果仍然显示 `FileNotFoundError` 错误,则可能需要检查文件路径的正确性。
相关问题
pyton 获取目录下的所有txt 随机合并成 a.txt 和b.txt 要求2个txt 行数一样
您好,根据您的要求,可以使用以下 Python 代码来实现:
```python
import os
import random
# 获取目录下所有 txt 文件
txt_files = [f for f in os.listdir('.') if f.endswith('.txt')]
# 读取每个 txt 文件,并将所有行保存在列表中
lines = []
for file in txt_files:
with open(file, 'r') as f:
lines.append(f.readlines())
# 获取每个 txt 文件的行数
num_lines = len(lines[0])
# 随机合并成 a.txt 和 b.txt
random.shuffle(lines)
a_lines = lines[:len(lines)//2]
b_lines = lines[len(lines)//2:]
a_file = open('a.txt', 'w')
b_file = open('b.txt', 'w')
# 将 a.txt 和 b.txt 中每个文件的行数限制为 num_lines
for i in range(num_lines):
a = a_lines[random.randrange(len(a_lines))][i]
b = b_lines[random.randrange(len(b_lines))][i]
a_file.write(a)
b_file.write(b)
a_file.close()
b_file.close()
```
以上代码首先使用 Python 内置的 `os` 模块获取当前目录下所有 `.txt` 结尾的文件,然后循环读取每个文件的内容并将每行内容保存在一个列表中。接着,获取每个文档的行数,并使用 `random.shuffle` 函数将所有行随机打乱。最后,将列表的前一半作为 a.txt 文件的内容,后一半作为 b.txt 文件的内容。同时使用 `random.randrange` 函数随机从每个文件中选择相应的行来保证两个文件的行数数量一致。
pyton 获取目录下的所有txt 依次合并交叉合并一样的行数 多余的追加到另外一个
可以使用Python的os和re模块来完成这个任务。以下是示例代码:
```python
import os
import re
# 获取当前目录下所有的txt文件路径
txt_files = [os.path.join(".", f) for f in os.listdir(".") if f.endswith(".txt")]
# 逐个打开文件并读取内容
contents = []
for txt_file in txt_files:
with open(txt_file, "r", encoding="utf-8") as f:
content = f.read()
contents.append(content)
# 合并交叉合并一样的行数,并追加到新文件
merged_lines = []
for lines in zip(*[content.splitlines() for content in contents]):
if all(line == lines[0] for line in lines):
merged_lines.append(lines[0])
else:
merged_lines.extend(lines)
with open("merged.txt", "a", encoding="utf-8") as f:
f.write("\n".join(merged_lines))
```
这段代码首先通过os模块获取当前目录下所有以txt结尾的文件的路径,然后逐个打开文件并读取内容。接着,它将所有文件的内容交错合并,并将相同行的内容合并为一行。最后,将合并后的内容追加到名为"merged.txt"的文件中。
阅读全文