Python脚本可以从pycharm正确运行,但不能从批处理文件运行

时间:2019-07-29 10:19:51

标签: python dataframe batch-file pycharm

我有一个Python脚本,该脚本从目录中扫描一些csv文件,从每个文件中获取最后一行,并将它们全部添加到新的csv文件中。在pycharm中运行脚本时,它可以正确运行并执行其指定的工作,但是当尝试通过批处理文件运行脚本时(我需要稍后再进行一些自动化操作),它将返回一个空的csv文件,而不是应该的文件。 批处理文件是通过写入.txt文件创建的:

"path of python.exe" "path of the .py file of the script"

,然后将.txt扩展名更改为.bat一个(这是我在网上发现的有关创建批处理文件的过程),脚本是:

import pandas as pd
import glob
import os
path = r'Path for origin files.'
r_path = r'Path of resulting file'
if os.path.exists(r_path + 'csv'):
   os.remove(r_path + 'csv')
if os.path.exists(r_path + 'txt'):
   os.remove(r_path + 'txt')
files = glob.glob(path)
column_list = [None] * 44
for i in range(44):
    column_list[i] = str(i + 1)
df = pd.DataFrame(columns = column_list)
for name in files:
    df_n = pd.read_csv(name, names = column_list)
    df = df.append(df_n.iloc[-1], ignore_index=True)
    del df_n
df.to_csv(r_path, index=False, header=False)
del df

我在做什么错了?

2 个答案:

答案 0 :(得分:1)

Pycharm在执行之前会自动在命令中添加一个名为PYTHONPATH的环境变量。 PYTHONPATH变量指示python进程执行脚本的基本路径是什么。

例如,如果您的文件路径为awesomecsv.csv,则python进程应如何知道应该在哪个文件夹中查找该文件?

PYTHONPATH=/my/path/tothefolderwheremyscriptis/ python my_script.py 

在PYTHONPATH上方,您告诉python您正在从哪个文件夹执行python命令。

related documentation

答案 1 :(得分:0)

错误可能出在csv文件的路径中,Pycharm可能正在为您设置某种工作区文件夹,尝试使用目录的完整路径