PyCharm中正常运行的CSV拆分脚本在CMD中无法生成输出文件
问题原因
核心问题是运行时工作目录不一致:
- PyCharm默认将脚本所在目录设为运行工作目录,生成的拆分文件会直接出现在脚本文件夹中。
- CMD运行脚本时,工作目录是你打开CMD时的当前路径(比如桌面、用户根目录),文件其实已经生成,但不在你预期的位置。
解决方案
通过路径处理,让输出文件固定生成在你预期的位置,以下是两种实用修改方式:
方式1:输出到输入CSV的同目录
修改split_csv_file函数,先获取输入文件的所在目录,再拼接输出文件的绝对路径:
import pandas as pd import math import tkinter as tk from tkinter import filedialog import os # 新增路径处理模块 def split_csv_file(input_csv, rows_to_split): with open(input_csv) as data_file: data = pd.read_csv(data_file) data_size = len(data) print(f"Input file has a total of {data_size} rows") file_need_to_create = math.ceil(data_size / rows_to_split) print(f"Number of files to create: {file_need_to_create}") # 获取输入CSV的所在目录 input_dir = os.path.dirname(input_csv) output_file_number = 1 start_row = 0 for x in range(0, file_need_to_create): end_row = start_row + rows_to_split split = data[start_row:end_row] # 拼接输出文件的绝对路径 output_path = os.path.join(input_dir, f"split{output_file_number}.csv") split.to_csv(output_path, index=False) output_file_number += 1 start_row += rows_to_split # 其余原有代码保持不变...
方式2:强制切换到脚本所在目录运行
在脚本开头添加代码,将工作目录切换到脚本自身的路径:
import pandas as pd import math import tkinter as tk from tkinter import filedialog import os # 新增路径处理模块 # 切换工作目录到脚本所在路径 script_dir = os.path.dirname(os.path.abspath(__file__)) os.chdir(script_dir) # 其余原有代码保持不变...
验证方法
修改后在CMD运行脚本,生成的拆分文件会出现在:
- 方式1:你选择的输入CSV文件的同目录下
- 方式2:脚本文件所在的目录下
内容的提问来源于stack exchange,提问作者Muntasir Hasib
相关产品推荐
相关产品推荐

