#!/usr/bin/env python3 """测试Windows兼容性修改""" import os import sys from pathlib import Path def test_path_operations(): """测试路径操作""" print("=== 测试路径操作 ===") # 测试Path对象 base_dir = Path(__file__).resolve().parent print(f"Base directory: {base_dir}") print(f"Base directory exists: {base_dir.exists()}") # 测试路径拼接 test_path = base_dir / "test_file.txt" print(f"Test path: {test_path}") print(f"Test path is absolute: {test_path.is_absolute()}") # 测试路径解析 print(f"Parent: {test_path.parent}") print(f"Name: {test_path.name}") return True def test_file_operations(): """测试文件操作""" print("\n=== 测试文件操作 ===") base_dir = Path(__file__).resolve().parent test_file = base_dir / "test_windows_compat.txt" try: # 测试写入(UTF-8编码) with open(test_file, "w", encoding="utf-8") as f: f.write("测试Windows兼容性\n") f.write("Test Windows compatibility\n") f.write("中文字符测试\n") print(f"文件写入成功: {test_file}") # 测试读取 with open(test_file, "r", encoding="utf-8") as f: content = f.read() print(f"文件读取成功,内容长度: {len(content)}") # 清理 test_file.unlink() print("测试文件已清理") return True except Exception as e: print(f"文件操作失败: {e}") return False def test_imports(): """测试导入""" print("\n=== 测试导入 ===") modules_to_test = [ "json", "csv", "gzip", "os", "sys", "pathlib", "argparse", "subprocess", ] all_success = True for module_name in modules_to_test: try: __import__(module_name) print(f"✓ {module_name} 导入成功") except ImportError as e: print(f"✗ {module_name} 导入失败: {e}") all_success = False return all_success def test_path_resolution(): """测试路径解析""" print("\n=== 测试路径解析 ===") # 测试相对路径解析 rel_path = Path("./test/../example") abs_path = rel_path.resolve() print(f"相对路径: {rel_path}") print(f"解析后绝对路径: {abs_path}") # 测试路径拼接 path1 = Path("C:/Users/test") path2 = Path("documents/file.txt") combined = path1 / path2 print(f"路径拼接: {combined}") return True def main(): print("开始Windows兼容性测试...") print(f"Python版本: {sys.version}") print(f"操作系统: {os.name}") print(f"当前目录: {os.getcwd()}") tests = [ ("路径操作", test_path_operations), ("文件操作", test_file_operations), ("模块导入", test_imports), ("路径解析", test_path_resolution), ] results = [] for test_name, test_func in tests: try: success = test_func() results.append((test_name, success)) except Exception as e: print(f"{test_name} 测试异常: {e}") results.append((test_name, False)) print("\n=== 测试结果汇总 ===") all_passed = True for test_name, success in results: status = "✓ 通过" if success else "✗ 失败" print(f"{test_name}: {status}") if not success: all_passed = False if all_passed: print("\n所有测试通过!代码应该可以在Windows上正常运行。") else: print("\n部分测试失败,需要进一步检查。") return all_passed if __name__ == "__main__": success = main() sys.exit(0 if success else 1)