读取文件夹下的txt python 批量删除txt中的最后五行数据
时间: 2024-10-08 12:21:50 浏览: 33
在Python中,你可以使用`os`, `glob`以及`open`函数来读取文件夹下的所有`.txt`文件,并逐个处理它们。这里是一个简单的例子,展示了如何批量删除每个文本文件的最后五行内容:
```python
import os
import glob
# 获取指定文件夹下所有的.txt文件
folder_path = '/path/to/your/folder' # 替换为你需要操作的文件夹路径
files = glob.glob(os.path.join(folder_path, '*.txt'))
# 对于每个.txt文件
for file in files:
with open(file, 'r+', newline='', encoding='utf-8') as f:
lines = f.readlines() # 读取文件的所有行
if len(lines) > 5: # 如果文件不止五行
f.seek(0) # 将文件指针移到开头
f.truncate() # 清空文件内容
f.writelines(lines[:-5]) # 写回除最后五行外的所有行
# 提示完成
print(f"已删除{len(files)}个文件的最后五行")
相关问题
python 怎样很多文件夹中txt的数据批量读取到dataframe
要批量读取多个文件夹中的txt数据到DataFrame,可以按照以下步骤进行操作:
1. 首先,导入所需的Python库,包括pandas库和os库。
2. 使用os库中的函数,如os.walk(),来遍历每个文件夹中的所有文件。
3. 使用pandas库中的read_csv()函数读取每个txt文件并将其转换为DataFrame。
4. 使用pandas库中的concat()函数将所有的DataFrame合并为一个大的DataFrame。
下面是一个示例代码:
```python
import pandas as pd
import os
# 存储所有txt文件的路径
file_paths = []
# 遍历文件夹
for root, dirs, files in os.walk("文件夹路径"):
for file in files:
# 仅选择txt文件
if file.endswith(".txt"):
file_paths.append(os.path.join(root, file))
# 存储所有txt数据的DataFrame列表
dfs = []
# 读取每个txt文件,并将其转换为DataFrame
for file_path in file_paths:
df = pd.read_csv(file_path, delimiter="\t") # 可根据具体情况指定分隔符
dfs.append(df)
# 将所有DataFrame合并为一个大DataFrame
combined_df = pd.concat(dfs, ignore_index=True)
# 打印合并后的DataFrame
print(combined_df)
```
请注意,此代码中的"文件夹路径"应替换为你要读取的文件夹的实际路径。此外,如果你的txt文件有特定的分隔符,如制表符或逗号,你需要根据实际情况调整read_csv()函数的参数。
python读取文件夹中txt文件
你可以使用以下代码来读取文件夹中的txt文件:
```python
import os
def read_txt_files(folder_path):
txt_files = []
for file_name in os.listdir(folder_path):
if file_name.endswith(".txt"):
file_path = os.path.join(folder_path, file_name)
with open(file_path, "r") as file:
txt_files.append(file.read())
return txt_files
```
这段代码首先使用`os.listdir()`函数获取文件夹中的所有文件名,然后通过判断文件名是否以".txt"结尾来筛选出txt文件。接着,使用`os.path.join()`函数构建文件的完整路径,然后使用`open()`函数打开文件,并使用`read()`方法读取文件内容。最后,将每个txt文件的内容添加到一个列表中,并返回该列表。你可以将文件夹路径作为参数传递给`read_txt_files()`函数来获取文件夹中所有txt文件的内容。
阅读全文