Python新手问题集锦|路径问题 编码问题(utf-8,gbk)等

c++调用python以及使用python将gbk/utf-8转punycode 最近遇到一个需求,关于DNS方面的,由于中文域名采用punycode编码,因此需要将程序中使用gbk的域名转为punycode 但是。。。c++的libidn库用起来相比python一句代码转化实在是太恶心了。。。 首先安装python-dev sudo apt-get install python-dev 先看python端的写法,如果只需要看c++如何调用python的可以直接跳过 阅读详情

经常看到群里python新同学问一些简单的问题,有些实在简单老鸟不太愿意答,因为一句说不清楚,但是对于新手来说也是一个困扰,所以正好闲暇片刻就来随笔一下,时间仓促若有错误请指正。

一、路径问题

  • 1.1 相对路径(地址)

    • “./ ” 表示当前文件所在目录下,比如:“./pic.jpg” 表示当前目录下的pic.jpg的图片,而实际使用时"./"可以省略。

    • “ ../” 表示当前文件所在目录下的上一级目录,比如:“../images/pic.jpg” 表示当前目录下的上一级目录下的images文件夹中的pic.jpg的图片。

  • 1.2 绝对路径(地址)

    • 相对于磁盘的位置去定位文件的地址,比如:"C:\Users\Desktop\images\001.jpg" ,指的是windows电脑C盘桌面上images文件夹里面的000.jpg图片文件。“/home/python/Desktop/images/001.jpg”,指的是Linux系统中桌面上images文件夹里面的001.jpg图片文件。注:“/”表示Linux系统的根目录。

  • 1.3 不同操作系统的格式差异(这里以window和LInux系统举例):

    • 最主要的差别就是Linux系统下是:“/”

    • windows系统下是“\”

  • 1.4 上面是不同操作系统对文件路径的表示方式差异,使用Python的时候还会遇到一个问题:

    • “\”在python中有特殊的含义,表示转义字符。所以比如“\n \a \b”等等,在windows系统下存在一个问题:需要转义,而转义字符就是“\”。所以,就变成了双反斜杠,类似"C:\\a\\b"来表示才行。

    • 在Linux系统中则不存在这个问题。

    • 补充:windows系统中运行python打开文件的时候存在一个原生字符串r的解决方案:r“\n \a \b”则解决了这个问题。只需要在路径前面加上r或R。

  • 1.5 补充,有些新新手使用windows下的cmd终端来运行桌面上的python文件"xx.py",偶尔发现找不到路径运行不了,就是因为移动了文件的位置,而cmd默认进入的不是桌面路径。

    • 所以需要cd到对应的路径,具体命令: cd C:xxxxx\xxxxx\xx.py 然后再python xx.py 来调用python解释器运行xx.py文件。

    • 或者:在当前xx.py文件路径中,按住shitf + 鼠标右键, 找到命令"在此处打开powershell窗口"或者"在此处打开cmd窗口",然后再python xx.py 来调用python解释器运行xx.py文件。

二、Python编码问题

  • 2.1 这个问题也是一个万年的老问题,python3目前已经支持中文了,所以相对的问题少了很多。如果是在python2.x的版本中,请在要运行的xx.py文件中顶行加上类似“# -*- coding:utf-8 -*-”,使用通用的utf-8 编码,当然这只是初级的问题。

  • 2.2 在实际开发中,比如爬虫中使用requests、urllib.request等库的时候,传递参数仍然会出现编码解码问题,这个时候 就是需要运用 encoding("utf-8") 和 decoding("utf-8")来编码解码。因为一般数据传输是bytes字节文件,而我们阅读的时候是txt等格式文件。

  • 2.3 Linux系统中收发数据都是utf-8来编码解码;但是windows接收文件是gbk编码,发送文件是utf-8编码,所以这个有是个坑。

  • 2.4 Python编码转换

str  ->  bytes: encode编码
bytes->  str: decode解码

字符串通过编码成为字节码,字节码通过解码成为字符串.

>>> text = '我是文本'
>>> text
'我是文本'
>>> print(text)
我是文本
>>> bytesText = text.encode()
>>> bytesText
b'\xe6\x88\x91\xe6\x98\xaf\xe6\x96\x87\xe6\x9c\xac'
>>> print(bytesText)
b'\xe6\x88\x91\xe6\x98\xaf\xe6\x96\x87\xe6\x9c\xac'
>>> type(text)
<class 'str'>
>>> type(bytesText)
<class 'bytes'>
>>> textDecode = bytesText.decode()
>>> textDecode
'我是文本'
>>> print(textDecode)
我是文本

其中decode()与encode()方法可以接受参数,其声明分别为:

bytes.decode(encoding="utf-8", errors="strict")
str.encode(encoding="utf-8", errors="strict")
​
其中的encoding是指在解码编码过程中使用的编码(此处指“编码方案”是名词),errors是指错误的处理方案。

详细的可以参照官方文档:

 

 

 

python在windows下读取给定路径下的文件(编码问题已解决)更新 要求读取指定路径下的文本文件,打印其信息。 如果按下回车就继续下一个,如果按下esc就退出。 getFiles可以获取指定路径下的所有CSV文件。可以自己修改,加上递归更可以深度遍历所给路径下的包括子路径下的文件。 获取文件类型也可以自己修改。 再提一点,这段程序在python.exe运行很正常 但是在pycharm由于编译器的问题导致esc不管用。。。 立即下载

相关推荐

Axure RP9汉化+授权全攻略:从下载到激活一步到位(附最新授权码)

本文提供Axure RP9从下载安装到界面汉化的完整指南,帮助设计师和产品经理快速上手这款原型设计工具。详细讲解了如何安全获取软件、执行汉化操作、理解核心界面布局,并介绍了创建交互原型和生成HTML文件的基础步骤,助力用户高效开展设计工作。

cuda7parallel的博客 1138

Java加载路径中文乱码(GBK还是UTF-8)

tmd 用了UTF-8还是乱码

weixin_51517315的博客 2501

西威SIEI变频器与电梯主板及驱动板原理图解析与详解(共二十九页原厂PDF图纸)

通过本文的分析,可以了解到西威变频器的技术特点、维修需求以及相关的图纸获取途径。在今后的工作中,维修人员需要充分了解设备的电路图和原理图,掌握正确的维修技术和方法,确保设备的正常运行和延长使用寿命。对于维修人员来说,获取准确的变频器图纸是进行维修工作的基础。这些图纸包含了变频器的电路图、原理图以及相关的元件布局等信息,是维修人员了解设备工作原理、确定维修步骤的重要依据。西威变频器是一种高效、可靠的电机控制设备,广泛应用于电梯、空调、风机等领域的电机控制中。目前,西威提供的维修图纸主要以PDF格式为主。

lXSqtACEzg的博客 1111

python关于文件路径问题

这段代码,找的是写死的路径,跟执行文件无关。的同级下的picture文件夹的相对路径。的同级下的picture文件夹的绝对路径。很多时候,我们并不知道绝对路径,只知道。相对于方法所在文件的相对路径。

Good Luck 1904

软件测试面试题汇总

软件测试面试题汇总 测试技术面试题 ........................................................................................................................................................................ 5 1、什么是兼容

晴天的专栏 2万+

思科路由器重分发(静态路由+OSPF动态路由+RIP动态路由)

思科路由器重分发(静态路由+OSPF动态路由+RIP动态路由)

2301_81256766的博客 1257

url路径参数带中文的乱码解决(前后台均为UTF-8)

前台jsp的url:  2次encodeURI(),第二次把%编码为%25 "/commentphoto/addComment?userId="+encodeURI(encodeURI($("#recom_text").val()))   后台 content = java.net.URLDecoder.decode(request.getParameter("recom_text"),

尹泉钧George Yin的专栏 1422

北斗导航 | 基于LSTM-KF融合的北斗卫星定位算法研究框架

针对北斗卫星导航系统在复杂环境下存在的多路径效应、非视距传播等问题,提出一种基于长短期记忆网络(LSTM)与卡尔曼滤波(KF)的组合定位算法。通过LSTM网络建模定位误差的非线性特征,结合卡尔曼滤波实现动态噪声抑制,构建"粗定位-LSTM校正-卡尔曼滤波优化"的三级处理架构。实验表明,融合算法较传统方法定位精度提升42.7%,均方根误差降低至1.2米。

尘世冰封的专栏 920

在win10中,路径是以utf8格式保存的

如题.你相信吗? 真的是这样,虽然在命令行界面下是cp 936,然而,utf8是骗不了人的. 我认为utf8不是理想的编码.理想的编码仍然是代码页! utf8可变宽的东西,太浪费字节了.而代码页只需要在所有内容文本中,加上encoding=... 就可以搞定了. 一句话,utf8是一神教.等宽编码才是未来!!! ...

个人进步之路 996

第十届MathorCup高校数学建模挑战赛-B题:养老服务床位需求预测与运营模式研究

当养老床位数增加时存在的商机,提出了相应的养老服务床位的运营商业模式。就业的可能性,建立多目标规划模型,尽可能同时满足三方面的要求。务床位的需求、制定合理的养老服务床位发展规划,是构建和谐社会、幸福社会。问题一的床位需求与市场类型的分类结果,查找关于国内养老院的相关数据,探。求,又能持续发展养老事业,同时还能促进社会就业的养老服务床位运营的商业。养老服务床位数的增加能够带来的就业方面因素的影响,并对这些因素进行一个。你们的模型及其结论为科学依据,对政府管理部门针对养老床位规划提出合理的。

getusushu的博客 1139

手把手教你学Simulink--单相逆变器模糊逻辑控制策略仿真

本文介绍了在Simulink中设计单相逆变器模糊逻辑控制策略的完整流程。主要包括:1)构建单相逆变器模型;2)使用FuzzyLogicToolbox设计模糊控制器,定义输入输出变量和模糊规则;3)将控制器集成到Simulink模型;4)添加干扰源和示波器;5)配置仿真参数并分析结果。该方法利用模糊控制处理非线性系统的优势,可实现输出电压的精确跟踪,具有良好的鲁棒性。文中提供了详细的步骤说明和示例代码,强调准确设计隶属函数和规则库对控制性能的关键作用。该仿真设计为电力电子控制系统的开发提供了有效支持。

MHD0815的博客 200

python设置utf-8

网上可能有很多文章了自己在记录下 //告诉操作系统执行这个脚本的时候,调用/user/bin下的python解释器 #!/usr/bin/python//这个是设置utf-8 格式 # -*- coding: <encoding name> -*-//这是设置作者的名 _author_ = 'Zhen' 设置好之后已经新建完的文件并不会生效删除已经新建的文件之后重新建文件夹就会起作用,不需

like_jack的博客 7271

BlockUI专栏目录

BlockUI是一个设计NX对话框的工具,是官方推荐使用的对话框制作方法,能够与NX自身风格相统一,并且在实际开发中经常被使用。BlockUI可以帮助用户快速创建NX对话框,支持多种控件类型,如按钮、文本框、标签等。通过使用BlockUI,用户可以轻松地自定义对话框的布局、样式和交互行为。此外,BlockUI还提供了一些高级功能,如动态更新、条件显示和事件处理等,以帮助用户创建更加复杂和灵活的对话框。本专栏讲述了使用BlockUI制作NX对话框的方法,介绍了每个控件的功能,并且分享一些常用操作的源码。

王牌飞行员_里海的博客 1630

Python读写文件的编码格式-UTF-8, GBK

做一个测试脚本,从文件夹A遍历所有的.txt格式文件,并打开文件逐行读取内容,写入到文件夹B里面。我们看读和写文件格式在是否指定为UTF-8时会发生什么错误。新建6个文件,汉字内容是“你好!”, 英文字符是"Hello" 代码如下 #coding=utf-8 #coding=gbk import os RootDir = R"E:\02_PythonTools\Fold-2\A\\" ...

Lincanman的博客 3万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

如何解决 PyCharm 控制台 pip install 报错 UnicodeDecodeError/GBK 路径编码问题

本文分析了PyCharm控制台执行pip install时出现UnicodeDecodeError的根本原因:Windows系统的GBK编码与Python/pip的UTF-8编码不兼容。主要诱因包括项目路径含中文、终端编码配置错误、pip版本过旧等。解决方案包括:规范项目路径(避免中文)、修改终端编码为UTF-8、升级pip版本,并提供了详细的PyCharm操作步骤。通过系统化调整编码配置,可彻底解决该问题,同时建议采用标准化路径和固定编码配置作为预防措施。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 1311

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

使用python批量转换文件编码为UTF-8

由于这两天换了IDE,在导入以前的工程的时候发现了一个大问题,由于以前脑残的我不知道改编码方式,导致出现了大量的GBK,这就很难受,要是一个两个还好说,可是这么多要是一个一个的改我会觉得现在的我比以前还脑残,于是乎,我就想用python批量的修改一下,然后就产生了这篇文章,其中好多不足的地方还请大佬指导 本来一开始的思路还是比较清晰,觉得也比较简单,天真的认为用GBK的方式读取出文件内容,然后U...

weixin_43905191的博客 2623

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Python编码错误解析:从SyntaxError到UTF-8与GBK编码原理详解

字符编码是计算机处理文本数据的基础规则,它定义了字符与二进制字节序列之间的映射关系。在编程中,常见的编码标准包括ASCII、GBK和UTF-8等,其中ASCII仅支持英文字符,GBK主要用于中文字符表示,而UTF-8作为Unicode的一种变长编码实现,能够兼容ASCII并覆盖全球所有语言字符。理解编码原理对于解决跨平台、跨语言协作中的乱码和解析错误至关重要,尤其在Python开发中,默认的UTF-8编码与历史遗留的GBK编码冲突常导致SyntaxError。本文通过分析Python解释器在词法分析阶段遇到

weixin_34387468的博客 974

批量把GBK文本编码换成UTF-8

把.c和.h文件的gbk编码用脚本一键转换成utf-8

weixin_52082065的博客 2040

解决Anaconda Prompt中文路径GBK编码错误的实战指南

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94960116的博客 715

彻底解决文件路径乱码:从UTF-8/GBK编码原理到Java/Python实战修复

字符编码是计算机处理文本信息的基础,它定义了字符与二进制数据之间的映射规则。在文件系统操作中,路径的存储、传递和解析都依赖于特定的字符编码。当操作系统、应用程序和终端环境使用不同的默认编码(如Windows的GBK与Linux的UTF-8)时,就会发生编码错乱,导致路径中的非ASCII字符(如中文)显示为类似`[熟肉]文件夹 根`的乱码。这不仅影响应用的可读性与可维护性,更可能引发配置文件读取失败、日志写入异常乃至安全风险。理解编码原理后,关键在于统一采用UTF-8作为项目内外的强制标准,并通过显式指定编码

weixin_30731305的博客 436

破局编码乱码:GBK到UTF-8的开源转换全攻略

### 核心价值 识别GBK编码文件在现代系统中的兼容性障碍,建立编码问题的技术认知框架。 ### 操作要点 - **编码冲突现象**:Windows生成的GBK文件在Linux/Mac编辑器中显示为"鎽卌"等乱码 - **技术本质**:GBK(汉字内码扩展规范)是双字节中文编码,与UTF-8(国际通用的多语言编码格式)的字符映射规则完全不同 - **传播风险**:未经转换的

gitblog_00907的博客 677

用快马AI一键解决UTF-8转GBK编码难题:高效无乱码的数据处理方案

通过上述步骤,我们实现了一个简单但功能强大的编码转换工具。未来可以进一步扩展功能,比如支持批量处理多个文件,或者添加更详细的日志记录和错误报告功能。在实际操作中,我发现。

BlackironPanther23的博客 787

Python:UnicodedecodeError编码问题解决方法汇总-彻底解决

今天真的被编码问题一直困扰着,午休都没进行。也真的见识到了各种编码。例如:gbk,unicode、utf-8、ansi、gb2312等。 如果脚本程序中编码与文件编码不一致,就会报出UnicodedecodeError的错误。 1.情景一 读文件时常需要将内容转为utf8,文字可正常显示,但是如果原文件内容编码格式不是utf8就会报错UnicodedecodeError。如下: 问题: try...

tomorrownan的博客 4万+

python文件编码问题,看这篇就够了

今天由于用python写脚本时,读取txt文件出现问题,查了半天,由此出这贴注意:windows里的Unicode不是指Unicode字符集,而是指文件编码格式utf-16, 关于字符集,请自行百度总结:涉及兼容性考量时,不要用记事本,用专业的文本编辑器保存为不带 BOM 的 UTF-8。 ANSI编码:    即当前操作系统使用的编码, 可在cmd下用chcp命令查看,活动页936为gbk编码,...

漏れた玩具博客 1万+

python gbk转utf8_python批量GBK转UTF-8

有时候编码问题在导入工程的时候很烦,所以还是让世界都是"UTF-8"吧。抄来一段代码:#!/usr/env python# -*- coding: utf8 -*-import fnmatchimport osimport sysimport codecsimport chardetdef find_files(path, fnexp="*"):for root, dirs, files in o...

weixin_39894473的博客 507

解决Anaconda Prompt打开显示GBK编码问题的终极指南

基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。架构理解:掌握实时语音应用的完整技术链路(ASR→LLM→TTS)技能提升:学会申请、配置与调用火山引擎AI服务定制能力:通过代码修改自定义角色性格与音色,实现“从使用到创造”从0到1构建生产级别应用,脱离Demo,点击打开。

2600_94960078的博客 1004
上一篇: Python部分面试题整理(会持续补充...)
下一篇: PyCharm 配置设置,激活,升级等
DefaultTest
博客等级 码龄9年 45粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值