python 读取目录下所有txt 行数
时间: 2023-06-06 18:08:17 浏览: 95
您好!可以使用Python的os和re模块来实现读取目录下所有txt文件的行数。具体代码如下:
```python
import os
import re
# 目标目录路径
folder = "your/folder/path"
# 获取所有txt文件名
files = [f for f in os.listdir(folder) if f.endswith('.txt')]
# 初始化行数
line_count = 0
# 逐个打开文件并统计行数
for file in files:
with open(os.path.join(folder, file), 'r') as f:
content = f.read()
lines = re.split("\r\n|\n|\r", content)
line_count += len(lines)
# 输出总行数
print("目录下所有txt文件的行数为:", line_count)
```
希望能够帮到您!
相关问题
python 获取目录下所有txt 按照行数排列
您好,以下是回答您的问题:
您可以使用Python的os模块和re模块来获取目录下的所有txt文件,并按照行数排列。
具体代码如下:
```python
import os
import re
# 获取指定目录下所有txt文件路径
def get_txt_files(path):
all_files = os.listdir(path)
txt_files = []
for file in all_files:
if os.path.splitext(file)[1] == '.txt':
txt_files.append(os.path.join(path, file))
return txt_files
# 统计每个txt文件的行数
def count_lines(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
return len(lines)
# 按照行数排列txt文件
def sort_files_by_lines(path):
txt_files = get_txt_files(path)
files_with_lines = []
for file in txt_files:
lines = count_lines(file)
files_with_lines.append((file, lines))
sorted_files = sorted(files_with_lines, key=lambda x: x[1], reverse=True)
for file in sorted_files:
print(file[0], file[1])
# 测试
sort_files_by_lines('your/path/to/txt/files')
```
在使用过程中,将 "your/path/to/txt/files" 修改为指定目录路径即可。
python 读取目录下所有行 根据txt 行数 合并成2个txt 要求 2个txt 行数最接近
您好!感谢您使用ChitGPT进行对话。
关于您的问题,可以使用以下Python代码实现读取目录下所有txt文件,并根据行数将它们合并为2个txt,使得这2个txt的行数最接近:
```python
import os
# 获取目录下所有txt文件
file_list = []
for file in os.listdir("your_directory_path"):
if file.endswith(".txt"):
file_list.append(file)
# 将每个txt文件按行读取,并统计行数
lines_list = []
for file in file_list:
with open(file, "r") as f:
lines = f.readlines()
lines_list.append((file, len(lines), lines))
# 根据行数从大到小排序
lines_list.sort(key=lambda x: x[1], reverse=True)
# 将txt文件分配到两个列表中
list1, list2 = [], []
total_lines1, total_lines2 = 0, 0
for i in range(len(lines_list)):
file, lines, contents = lines_list[i]
if total_lines1 <= total_lines2:
list1.append((file, contents))
total_lines1 += lines
else:
list2.append((file, contents))
total_lines2 += lines
# 将列表中的内容写入新的txt文件中
with open("output1.txt", "w") as f:
for _, contents in list1:
for line in contents:
f.write(line)
with open("output2.txt", "w") as f:
for _, contents in list2:
for line in contents:
f.write(line)
```
请注意,您需要将上面代码中的 `"your_directory_path"` 更改为您想要读取的目录的路径。同时,您需要确保该目录中只包含纯文本文件(txt文件),且文件内容可以按行读取。
希望这能解决您的问题。如果您有任何其他问题或疑问,请随时问我!
阅读全文