首页 > 解决方案 > 为什么这段代码不能在 windows 上运行,它在 mac 上运行良好

问题描述

此代码在 Mac 上运行,但在 Windows 上不起作用。我使用 pycharm (2019.2) 作为 IDE 和 python 3.7。

import glob
import shutil
import os
dst = '/base/a/CAR1'
alter = '/base/a/CAR2'
path = '/base/a/Tub*'

for filename in glob.glob(path + 'Finsa*.txt'):
    if '19999' in open(filename, 'r').read():
        shutil.copyfile(filename, os.path.join(dst, os.path.basename(filename)))
    elif '18888' in open(filename, 'r').read():
        shutil.copyfile(filename, os.path.join(alter, os.path.basename(filename)))

即使我执行以下操作也不起作用-

for filename in glob.glob('C:/user/base/a/CAR1*.txt'):
    print(filename)

结果:
进程以退出代码 0 结束。

发生这种情况是因为 python 无法读取 Windows 文件目录吗?我已经尝试了所有方法,包括反斜杠、正斜杠、双斜杠。

标签: pythonpython-3.x

解决方案


使用 os 模块并将基础文件夹放在您的项目目录中:

import os

path = os.path.join(os.getcwd(), 'base', 'a', 'Tub*')

for filename in glob.glob(os.path.join(path, 'Finsa*.txt')):

您获得了平台之间的可移植性(假设在 Windows 和 Linux 中,基本文件夹都在 python 项目空间中)。


推荐阅读