Traceback (most recent call last): File "C:\Users\test\PycharmProjects\pythonProject\链接导入csv中.py", line 57, in <module> df_extracted = df_extracted.append({'File Name': file_name}, ignore_index=True) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\test\PycharmProjects\pythonProject\venv\Lib\site-packages\pandas\core\generic.py", line 5989, in __getattr__ return object.__getattribute__(self, name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?
时间: 2023-08-05 15:05:41 浏览: 42
抱歉,我之前的回答有误。在最新版本的pandas中,DataFrame对象没有`append`方法。你可以使用`concat`函数来将提取的数据追加到DataFrame中。以下是修改后的示例代码:
```python
import os
from bs4 import BeautifulSoup
import re
import pandas as pd
# 指定文件夹路径
folder_path = "C:/Users/test/Desktop/DIDItest"
# 正则表达式模式
pattern = r'<body>(.*?)<\/body>'
# 创建一个空的DataFrame用于存储提取的文件名数据
df_extracted = pd.DataFrame(columns=['File Name'])
# 遍历文件夹中的所有文件
for root, dirs, files in os.walk(folder_path):
for file in files:
# 读取html文件
file_path = os.path.join(root, file)
with open(file_path, "r", encoding="utf-8-sig") as f:
html_code = f.read()
# 创建BeautifulSoup对象
soup = BeautifulSoup(html_code, 'html.parser')
# 使用正则表达式匹配<body>标签内的数据
body_data = re.findall(pattern, html_code, re.DOTALL)
# 剔除<p>和()</p>
body_data = body_data[0].replace("<p>", "").replace("()</p>", "")
# 使用正则表达式提取文件名
matches = re.findall(r'"([^"]*)"', body_data)
if matches:
file_name = matches[0]
else:
file_name = "No matches found."
# 替换字符
file_name = file_name.replace('No matches found.', '')
# 将提取的文件名数据加入DataFrame中
df_extracted = pd.concat([df_extracted, pd.DataFrame({'File Name': [file_name]})], ignore_index=True)
# 读取原有的CSV文件
csv_file = "output.csv"
df_original = pd.read_csv(csv_file)
# 合并原有的DataFrame和提取的DataFrame
df_combined = pd.concat([df_original, df_extracted], axis=1)
# 将合并后的DataFrame写入CSV文件
df_combined.to_csv(csv_file, index=False)
print("数据已成功写入CSV文件")
```
在上面的代码中,我使用`pd.concat()`函数将提取的文件名数据追加到`df_extracted`中。然后,我将原始的DataFrame `df_original` 和提取的DataFrame `df_extracted` 合并为一个新的DataFrame `df_combined`。最后,使用`df_combined.to_csv()`将合并后的DataFrame写入CSV文件。
请确保提供正确的文件夹路径和CSV文件路径,并根据需要调整代码。再次对之前的错误回答表示歉意。