Python工程师Java之路(k)文件读写

软件测试工程师要学会Python 在IT行业里,有相当大一部分软件测试工程师在从事着完全手动的测试工作。手动测试对测试工程师本身技术能力要求不高以及在业内工资价格低廉,因此很受中小型企业的所推崇。而且很多大型IT,软件,及消费电子制造企业,也有相当数量的手动软件测试工程师。        手动测试有很多好处,从用户的角度,更容易发现隐蔽的问题,很容易招聘到人(因为要求不高,这也成了一些非计算机相关,且冷门专业的应届毕业生进入IT 阅读详情

1、Java版

1.1、获取本类信息:this.getClass

package a.b.c;

public class Hello {
    public static void main(String[] args) {
        (new Hello()).getThisClass();
    }

    private void getThisClass() {
        Class c = this.getClass();

        System.out.println(c);
        // class a.b.c.Hello

        System.out.println(c.getSimpleName());
        // Hello

        System.out.println(c.getName());
        // a.b.c.Hello

        System.out.println(c.getTypeName());
        // a.b.c.Hello

        System.out.println(c.getPackage());
        // package a.b.c

        System.out.println(c.getResource("/"));
        // file:/C:/Users/yellow/IdeaProjects/JavaProject/out/production/JavaProject/

        System.out.println(c.getResource(""));
        // file:/C:/Users/yellow/IdeaProjects/JavaProject/out/production/JavaProject/a/b/c/

        System.out.println(c.getResource("").getPath());
        // /C:/Users/yellow/IdeaProjects/JavaProject/out/production/JavaProject/a/b/c/
    }
}

1.2、文件:File

File f = new File("JavaProject.iml");
// 文件字节数
f.length();
// 是否存在这个文件
f.exists(); // true
// 是否是文件
f.isFile(); // true
// 是否文件夹
f.isDirectory();
// 绝对路径
f.getAbsolutePath(); // C:\Users\yellow\IdeaProjects\JavaProject\JavaProject.iml
// 文件名
f.getName(); // JavaProject.iml
// 是否绝对路径
f.isAbsolute(); // false

一些其它方法
createNewFile :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件
delete :删除由此File表示的文件或目录。只能删除空目录
mkdir :创建由此File表示的目录
list :返回一个String数组,表示该File目录中的所有子文件或目录
listFiles :返回一个File数组,表示该File目录中的所有的子文件或目录。

1.2.1、递归打印目录树

import java.io.File;

public class Hello {
    public static void main(String[] args) {
        Hello hello = new Hello();
        hello.tree("C:\\Users\\yellow\\IdeaProjects\\javaSE");
        hello.tree("C:\\Users\\yellow\\IdeaProjects\\javaSE\\javaSE.iml");
        hello.tree("C:/Users/yellow/IdeaProjects/javaSE");
        hello.tree("/");
    }

    public void tree(File rootDir) {
        System.out.println(rootDir);
        if (rootDir.isDirectory()) {
            File[] files = rootDir.listFiles();
            if (files != null) {
                for (File file : files) {
                    tree(file);
                }
            }
        }
    }

    public void tree(String fileName) {
        tree(new File(fileName));
    }
}

1.2.2、文件名拼接+获取同级目录文件全名(还没验证Maven安装后的)

1.2.2.1、待验

import java.io.File;

public class Dict {
    public static void main(String[] args) {
        Dict d = new Dict();
        File f = d.getLateralFile("dict.txt");
        System.out.println(f);
        System.out.println(f.isFile());
        System.out.println(f.exists());
    }

    // 获取平级文件
    public File getLateralFile(String child) {
        String parent = this.getClass().getResource("").getPath();
        return new File(parent, child);
    }
}
1.2.2.2、Maven安装后,别的工程导入依赖可用(已初验,未报错)
BufferedReader bR = new BufferedReader(new InputStreamReader(
        this.getClass().getResourceAsStream("dict.txt"), StandardCharsets.UTF_8));

1.3、按行读写文件

// 写数据
BufferedWriter bW = new BufferedWriter(new FileWriter("a.txt"));
bW.write("落水无花\n拉");
bW.write("屎无痕\n");
bW.close();
// 读数据(按行)
BufferedReader bR = new BufferedReader(new FileReader("a.txt"));
String line1 = bR.readLine();
String line2 = bR.readLine();
String line3 = bR.readLine();
String line4 = bR.readLine();
System.out.println(line1);
System.out.println(line2);
System.out.println(line3);
System.out.println(line4);
bR.close();

打印结果

2、Scala版

2.1、相对路径读文件

2.2、getClass

println(this.getClass)
// class a.b.c.Hello$

println(this.getClass.getPackage)
// package a.b.c

println(this.getClass.getName)
// a.b.c.Hello$

println(this.getClass.getResource(""))
// file:/C:/Users/yellow/IdeaProjects/mavenP/target/classes/a/b/c/

println(this.getClass.getResource("/"))
// file:/C:/Users/yellow/IdeaProjects/mavenP/target/classes/

println(this.getClass.getResource("").getPath)
// /C:/Users/yellow/IdeaProjects/mavenP/target/classes/a/b/c/

println(this.getClass.getResource("/").getPath)
// /C:/Users/yellow/IdeaProjects/mavenP/target/classes/

2.3、文件名拼接+获取同级目录文件全名(待验)

package a.b.c

import scala.io.{BufferedSource, Source}

object Hello {
  def main(args: Array[String]): Unit = {
    val path:String = this.getClass.getResource("a.txt").getPath
    println(path)
    val bufferedSource: BufferedSource = Source.fromFile(path)
    val wholeText: String = bufferedSource.mkString
    print(wholeText)
  }
}

2.4、按行读取

val path:String = this.getClass.getResource("a.txt").getPath
val bufferedSource: BufferedSource = Source.fromFile(path)
val lines: Iterator[String] = bufferedSource.getLines()
lines.foreach(println)

3、Python版

文件名拼接+获取同级目录文件全名

from os import path

PATH = path.dirname(__file__)  # 当前文件父级目录的绝对路径

def get_absolute_path(file_name, directory_name=PATH):
    return path.join(directory_name, file_name)

def read_lines(file_name):
    with open(file_name, encoding='utf-8') as f:
        return f.read().strip().split('\n')

if __name__ == '__main__':
    print(read_lines(get_absolute_path("a.txt")))
Java通过python命令执行DataX任务 Java调用控制台python命令(含传递参数)执行DataX的job任务,mysql向odps同步数据。 立即下载

相关推荐

PCA9548实战:从硬件连接到Linux驱动的I2C扩展全解析

本文详细解析了PCA9548 I2C多路复用器从硬件连接到Linux驱动配置的全过程。涵盖硬件引脚连接、电源去耦、地址选择等关键设计要点,以及Linux驱动加载、设备树配置和应用层编程技巧,帮助开发者高效实现I2C总线扩展。

weixin_28726391的博客 413

java调python程序_java调用python程序

2020-12-30在做项目的时候,经常会碰到这个问题,主要程序是用java写的,有些功能使用python写的,整个项目需要把java代码和python代码进行整合,在一个项目里面运行,这就涉及到java调用python的问题。java调用python程序有几种思路:需要先搭建好 java 及 python 的编译执行环境。前两种都是本地调用。第三种是通过微服务的方式。1.一个解决思路是在jav...

weixin_39859819的博客 370

生成式深度学习(第二版)-第一章-Conda环境下TensorFlow和Keras的安装和配置

按照书籍中的代码运行提示,需要配置Docker。个人的机器上正好有 conda4.14.0,索性就在本地环境进行配置。

GarryWang1248的博客 399

Java提示错误: 找不到或无法加载主类

C:\Java\IdeaProjects\java>java xxxx 错误: 找不到或无法加载主类 xxxx 检查java在Idea终端中是否可用,如不可用,编辑编译器输出路径:文件→项目结构→模块→路径→输出目录 或 设置→工具→终端→项目设置→环境变量 // https://cn.fankuiba.com C:\Java\IdeaProjects\java>java -version java version "1.8.0_231" Java(TM) SE Runtime Environ

Impulse is the Devil 737

7系列ZYNQ硬件调试:Vitis无法识别ARM DAP的排查与解决

本文详细分析了Xilinx 7系列ZYNQ芯片在Vitis开发环境中无法识别ARM DAP的常见问题及解决方案。从硬件设计检查(电源系统、时钟电路)、JTAG连接诊断到软件环境排查,提供了全面的调试指南。特别针对ARM DAP初始化失败的情况,给出了实用的排查步骤和预防措施,帮助开发者快速定位和解决类似问题。

weixin_33737134的博客 515

天龙八部源码深度解析:从宠物系统到副本机制(C++游戏开发实战)

本文深度解析《天龙八部》源码架构,重点剖析宠物系统状态机实现与副本动态加载机制等核心模块。通过C++代码示例展示宠物AI状态迁移逻辑和副本场景管理技术,为现代游戏开发提供兼容性改造方案与设计启示。适合游戏开发者学习经典MMORPG的工程化实现路径。

weixin_29011239的博客 390

YOLO26改进策略【小目标改进】| 添加专用于小目标的检测层 附YOLOv1~YOLOv11的检测头变化详解

在目标检测领域,小目标检测一直是一个具有挑战性的问题。算法以其高效快速的特点受到广泛关注,然而在面对小目标时,仍存在一些局限性。本文将介绍如何在中添加小目标检测层,以提高对小目标的检测能力。原始模型结构如下: 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检测头对应的经过了更多的下采样操作,相比P3/

Limiiiing的博客 353

Intellij14解决C:\Users\Administrator\.IntelliJIdea14存放路径

1.先说为什么建议修改路径 C盘空间不足,或者想重装系统等原因,不得不修改安装路径.所以以后安装开发工具的时候不要安装在系统盘里,使用该工具前把一些默认的配置信息的路径也改到别的盘符下.以后在换系统也正常使用该工具,这是多么爽的事呀!(例如额没事就换个系统,哈哈,[C:\Users\Administrator\.IntelliJIdea14这个文件占很多的空间,以后的配置信息都会在这里存放,会越

yqroot的博客 1万+

硬核实战!Python爬虫从0到1完整版:爬取知乎热榜+回答内容(数据去重+Excel一键导出+避坑指南,零基础友好)

✔️ 适用人群:Python爬虫零基础、想练手实战爬虫、需要爬取知乎内容做数据分析、办公/学习素材整理的同学爬取知乎热榜全量数据(排名+标题+热榜链接+热度值) →自动跟进爬取每个热榜问题的回答内容(回答者昵称+赞同数+评论数+回答正文+发布时间) →数据清洗+智能去重→一键导出格式化Excel文件,所有功能一站式完成入门级难度,无复杂反爬破解、无分布式/代理池,纯requests请求+静态解析,新手能看懂、能运行、能修改;爬取速度快,热榜+回答全程仅需几十秒。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1462

第四章:无感FOC的平滑启动艺术:告别“咔哒”声与抖动

无感FOC启动技术面临"先有位置还是先有旋转"的核心矛盾,导致常见故障包括位置失准、负载突变等。基础方案采用开环I/F控制,但存在重载启动困难等局限性。进阶方案结合IPD位置检测技术,通过脉冲电压注入法精准定位转子初始位置。关键技术在于开环到闭环的平滑切换,采用混合观测器设计和相位对齐技术。量产优化包括自适应参数整定和故障恢复机制,确保启动可靠性和一致性。该系统工程方案可有效解决启动抖动、异响等问题,提升用户体验。

汽车软件开发 748

Python中调用Java方法

简介 如何在Python中调用Java中各种形式(如出现在class文件/jar文件)的类和方法? jpype包帮助我们实现了这一需求 只需要给定JVM和jar包路径,同时对Java中的类进行封装,随后就可以像在Python中一样调用类的各项函数了 项目地址:jpype 安装 pip install jpype1 实例 import jpype // 系统jre路径,用于调用jvm jvmPath = jpype.getDefaultJVMPath() // 启动jvm,可以传递各种参数,这里导入了一个用于

某热心知名群众的博客 471

HyperLynx(十五)多板仿真

在对话框的“Design file#1”下拉列表中选择“B00,Mainboard”,在其下方的“Reference designators”列表中选择元器件“J1”,然后在“Designfile#2”下拉列表中选择“BO1、RAM1”,在其下方的“Refer ence designators”列表中选择元器件“J1”,单击“Insert”按钮,为这两个元器件建立互连映射。在“Assign Models”对话框中,选择“B00 Motherboard”,将“U16.B12”设置为输出。

小幽余生不加糖 5062

python工程师工资多少-Python工程师的薪资到底有多高

达内教育就业专家为您解读:Python工程师的薪资如何?怎么样学习python呢,python工程师的薪资的到底有多少呢?谁会成为AI 和大数据时代的第一开发语言?这已是一个无需争论的问题。如果说三年前,Matlab、Scala、R、Java 和 Python还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明确了,特别是 Facebook 开源了 PyTorch 之后,Python 作为 A...

q6q6q的专栏 2737

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python工程师工资一般多少-Python工程师的薪资到底有多高

达内教育就业专家为您解读:Python工程师的薪资如何?怎么样学习python呢,python工程师的薪资的到底有多少呢?谁会成为AI 和大数据时代的第一开发语言?这已是一个无需争论的问题。如果说三年前,Matlab、Scala、R、Java 和 Python还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明确了,特别是 Facebook 开源了 PyTorch 之后,Python 作为 A...

weixin_37988176的博客 3719

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python工程师月薪15K以上,Python能做机器学习吗?

如今,人工智能技术已经成为国家战略,无人超市、人脸识别、自动驾驶、智能家居等“黑科技”正逐渐成为现实。 像云计算、大数据、深度学习、算法、语音识别、技术机器人技术等作为人工智能的技术储备,都离不开Python、Java、C++等编程语言的支撑。 而当下热门的Python被认为是现阶段人工智能技术的首选编程语言。因此想入门人工智能领域,需要从Python入手(下图来自拉勾网2019年8月8日数据) ...

weixin_38742571的博客 3376

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

为什么运维要学Python?会Python的运维工程师能挣多少钱?

或许你听说过:一个高级运维必须掌握Python技术,而会Python的运维更具竞争力,也更“值钱”。那么,运维和Python到底是什么关系呢?为什么掌握Python的运维...

Linux云计算数据自学 2651

年薪500K,眼红了么?Python 工程师薪资再刷IT标准

近年来,互联网的不断庞大有目共睹,除了表面上的大众受益,其中的编程者可谓功不可没,尽管国外电脑语言依旧属于领头羊的身份,谁叫这是“地球村”呢,国内的相关行业一刻也不曾落下脚步,相对于其他技术工的薪酬待遇,程序猿诸如此类的工种也是属于不错的待遇范畴了(首先你是技术猿)。Java 、C/C++ 再到如今的Python,薪资都是以10K来论,而年轻的Python薪资待遇再攀新高,来到了20K以上。 ...

qq_42712463的博客 631

python转型工资_不止 20K,Python 工程师薪资再飙升(内附转型指南)

Python 诞生之初就被誉为最容易上手的编程语言。进入火热的 AI 人工智能时代后,它也逐渐取代 Java,成为编程界的头牌语言。编程圈金句也从“人生苦短,我学Python”转变成了“学完 Python,可以上天”,可见其火热程度!尽管我们都会调侃「又骗我学 XX」,但在编程语言排行榜中,因为人工智能的火热,也因其语言本身对新手友好、易于上手、功能强大、高效灵活,年轻 Python 的「受欢迎度...

weixin_39915081的博客 132

转行指南:Java开发工程师转AI工程师,附大模型学习路线

数学基础:包括线性代数(矩阵运算、特征值/向量)、微积分(梯度、优化)和概率与统计(分布、假设检验、贝叶斯推断)。这些是AI算法的基础。编程语言:重点学习Python,因为它是AI开发的主流语言,Java开发者的编程经验能帮助快速上手。机器学习:了解监督学习、非监督学习、强化学习,掌握算法如线性回归、决策树、支持向量机(SVM)等。深度学习:学习神经网络(如卷积神经网络CNN、循环神经网络RNN、长短时记忆网络LSTM),并熟悉TensorFlow、PyTorch等框架。大型语言模型(LLM)

2401_85373691的博客 2934

2025转行指南:Java开发工程师转AI工程师,附大模型学习路线

如果你真的想学习大模型,请不要去网上找那些零零碎碎的教程,真的很难学懂!你可以根据我这个学习路线和系统资料,制定一套学习计划,只要你肯花时间沉下心去学习,它们一定能帮到你!

2401_85325726的博客 2305

高薪招聘Python、Java工程师却没有3K薪资的行政好招?

01最近在某平台上看到一个科技公司的CEO发布了公司招聘的一个苦恼,他们公司招聘行政助理(工资3K-6K)、Python后端工程师开发(工资12K-15K)、CAD算法开发工程师(工资1...

优快云资讯 1986

python全栈工程师薪水_不止 20K,Python 工程师薪资再飙升(内附转型指南)

原标题:不止 20K,Python 工程师薪资再飙升(内附转型指南) Python 诞生之初就被誉为最容易上手的编程语言。进入火热的 AI 人工智能时代后,它也逐渐取代 Java,成为编程界的头牌语言。编程圈金句也从“人生苦短,我学Python”转变成了“学完 Python,可以上天”,可见其火热程度!尽管我们都会调侃「又骗我学 XX」,但在编程语言排行榜中,因为人工智能的火热,也因其语言本身对新...

weixin_39929961的博客 225

月入20K,眼红了么?Python 工程师薪资再刷IT标准

近年来,互联网的不断庞大有目共睹,除了表面上的大众受益,其中的编程者可谓功不可没,尽管国外电脑语言依旧属于领头羊的身份,谁叫这是“地球村”呢,国内的相关行业一刻也不曾落下脚步,相对于其他技术工的薪酬待遇,程序猿诸如此类的工种也是属于不错的待遇范畴了(首先你是技术猿)。Java 、C/C++ 再到如今的Python,薪资都是以10K来论,而年轻的Python薪资待遇再攀新高,来到了20K以上。 Python是什么? 是一种面向对象、直译式计算机程序设计语言,由Guido van Rossum于1989年底发

每日分享程序员技巧 101

python工程师工资多少-不止 20K,Python 工程师的薪资再度飙升!

招聘网站数据显示,Python 工程师平均每月招聘人数需求12331人, 其中10月招聘需求最多,高达20600人。全国Python就业形势分析:招聘待遇:工资20k以上占比最多,达40%。经验要求:3-5年工作经验要求的占比最多,达71%;学历要求:本科学历要求的占比最多,达76%。该数据仅供参考其中:python工资按工作经验统计,其中0-2年工资¥15060,应届毕业生工资¥9210,3 -...

weixin_37988176的博客 117
上一篇: Python工程师Java之路(n)手写中文分词
下一篇: Python工程师Java之路(l)反射
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值