You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取VPN网络共享驱动器TXT文件的问题求助

解决方案

核心问题修正与优化点

  • 路径处理错误:你直接将共享路径赋值给folder,导致folder[i]取的是路径字符串的单个字符而非文件路径,必须用os.listdir获取文件列表后拼接完整路径。
  • 分隔符未指定:TXT文件用|分隔,需给pd.read_csv添加sep='|'参数,否则会按默认逗号解析数据。
  • 日期筛选缺失:需通过datetime模块生成昨日日期,匹配文件名或文件修改时间筛选目标文件。
  • 合并方向错误:同结构数据合并应使用axis=0(行合并),而非axis=1(列合并),后者会导致列错位。

完整修正代码

import pandas as pd
import os
from datetime import datetime, timedelta

# 共享驱动器路径
share_path = r'\\fileshare.com\PATH\TO\FTP\FILES'

# 生成昨日日期(根据文件名格式调整,比如'%Y-%m-%d'或'%Y%m%d')
yesterday = (datetime.now() - timedelta(days=1)).strftime('%Y%m%d')

# 获取所有文件的完整路径
all_files = [os.path.join(share_path, filename) for filename in os.listdir(share_path)]

# 筛选目标文件:二选一即可
# 方式1:按文件名包含昨日日期筛选
target_files = [f for f in all_files if yesterday in os.path.basename(f)]

# 方式2:按文件修改日期为昨日筛选(注意时区匹配问题)
# target_files = []
# for f in all_files:
#     mod_time = datetime.fromtimestamp(os.path.getmtime(f))
#     if mod_time.strftime('%Y%m%d') == yesterday:
#         target_files.append(f)

# 初始化空DataFrame
main_dataframe = pd.DataFrame()

# 遍历读取并合并文件
for file_path in target_files:
    try:
        # 读取|分隔的文件,header=0表示第一行是表头,无表头则改为header=None
        df = pd.read_csv(file_path, sep='|', header=0)
        main_dataframe = pd.concat([main_dataframe, df], axis=0, ignore_index=True)
    except Exception as e:
        print(f"读取文件{file_path}失败: {str(e)}")

print(main_dataframe)

额外注意事项

  • 日期格式适配:根据你的实际文件名或修改日期格式,调整strftime的参数(例如文件名是data_2024-05-20.txt,则用'%Y-%m-%d')。
  • 表头处理:如果TXT文件无表头,将header=0改为header=None,还可通过names=['列名1', '列名2', ...]手动指定列名。
  • 权限验证:若仍无法读取文件,先手动打开共享路径确认VPN连接正常、有权限访问且文件未被锁定。

内容的提问来源于stack exchange,提问作者Coop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:10:34