使用python语言对文本文档进行行列转换

合集下载

python文本替换脚本_如何编写Python脚本替换文件中的多行字符?

python文本替换脚本_如何编写Python脚本替换文件中的多行字符?

python⽂本替换脚本_如何编写Python脚本替换⽂件中的多⾏字符?《派森》(Python)3.13 win32 英⽂安装版类型:编程⼯具⼤⼩:21M语⾔:英⽂ 评分:8.7标签:⽴即下载在⼤概3个⽉之前,Python对我来说⼀直是个迷。

然⽽,就在3个⽉前我经理给我⼀个任务——删除(替换)所有项⽬源码⽂件中包含特定⼏⾏内容的所有注释。

整个项⽬源码的⼤⼩有1G,在Linux服务器(中⾼档)上编译需要半个多⼩时,可见代码量之⼤,不可能⼿动去⼀个⼀个改。

肯定得⽤脚本去处理,于是我想到了Python。

在这之前没有接触过Python,花了2个星期⼀顿恶补之后,总算顺利交差了。

⼀直很想和⼤家分享⼀下碰到的问题及我如何解决的(可能我的⽅案并不好,但是他能够解决我的问题),但⼀直拖到现在是因为我感觉我还对Python的了解还不够。

因为要在短时间内完成上⾯交下来的任务,在学习Python的时候,都是⾛马观花,对解决⾃⼰的问题不相关的直接跳过,看资料也静不下⼼,脑海⾥都是问题。

前⼏天我静下⼼把Python的书从头到尾浏览了⼀遍,感觉现在是时候要进⾏总结了。

本⽂的主要内容如下:问题描述解题思路代码实现Python的特点1、问题描述项⽬源码很⼤,属于C/C++混合的那种,编程风格也很多样,有'.c'、'.cc'、'cpp'、'.h'、'.hh'等⽂件。

我要完成的任务是:把包含特定⼏⾏内容的注释删掉,如(声明:下⾯的内容只是我随便举的⼀个例⼦,项⽬源码中不涉及下⾯的内容。

)/** Copyright 2002 Sun Microsystems, Inc. All rights reserved.** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the following conditions* are met:** - Redistributions of source code must retain the above copyright* notice, this list of conditions and the following disclaimer.** - Redistribution in binary form must reproduce the above copyright* notice, this list of conditions and the following disclaimer in* the documentation and/or other materials provided with the* distribution.** Neither the name of Sun Microsystems, Inc. or the names of* contributors may be used to endorse or promote products derived* from this software without specific prior written permission.*/但是格式有很多种,如有的在“ Copyright 2002 Sun Microsystems, Inc. All rights reserved.”前⾯有⼀段关于本源码⽂件的描述、有的在“from this software without specific prior written permission.”后⾯有⼀段关于本源码⽂件的描述、有的是C++风格的注释⽤"//",⽽不是“/**/”、还有的没有“ * - Redistribution in binary form must reproduce the above copyright* notice, this list of conditions and the following disclaimer in* the documentation and/or other materials provided with the* distribution.”等等还有其他⼀些。

pandas如何优雅的列转行及行转列详解

pandas如何优雅的列转行及行转列详解

pandas如何优雅的列转⾏及⾏转列详解⽬录⼀、列转⾏1、背景描述2.⽅法描述2.1 ⽅法12.2 ⽅法22.3 ⽅法32.4 ⽅法43 思考与总结4 思维延伸4.1 例⼦14.2 例⼦2⼆、⾏转列1.准备数据2.⾏转列实现2.1 ⽅法12.2 ⽅法22.3 ⽅法33.思考与总结三、⾏列转换(长宽互换)总结⼀、列转⾏1、背景描述在⽇常处理数据过程中,你们可能会经常遇到这种类型的数据:⽽我们⽤pandas进⾏统计分析时,往往需要将结果转换成以下类型的数据:2.⽅法描述准备数据df = pd.DataFrame({'姓名': ['A','B','C'],'英语':[90,60,70],'数学':[80,98,80],'语⽂':[85,90,75]})这个实现的⽅法有多种形式,这⾥集中进⾏展⽰2.1 ⽅法1tmp=df.set_index(['姓名']).stack()tmp2=tmp.rename_axis(index=['姓名','科⽬'])='分数'tmp2.reset_index()2.2 ⽅法2tmp=df.set_index(['姓名']).stack()s=['姓名','科⽬']tmp.reset_index(name='分数')2.3 ⽅法3tmp=df.set_index(['姓名']).stack().reset_index()tmp.columns=['姓名','科⽬','分数']2.4 ⽅法4tmp=pd.melt(df,id_vars='姓名',var_name='科⽬',value_name='分数')3 思考与总结通过上述的对⽐,相信各位已经明⽩其中的厉害之处了,下⾯就来重点讲解⼀下melt这个函数。

python转换代码

python转换代码

python转换代码标题:Python转换代码:详细精确的解释与示例简介:Python是一种简单易学的编程语言,具有强大的数据处理和转换能力。

本文将详细介绍Python中常用的数据转换方法和技巧,包括类型转换、字符串转换、列表转换、字典转换等。

通过本文的学习,读者将能够熟练地使用Python进行数据转换,提高编程效率。

正文:1. 类型转换Python中的类型转换非常简单,可以使用int()、float()、str()等内置函数来实现。

例如,将一个整数转换为浮点数可以使用float()函数,将一个字符串转换为整数可以使用int()函数。

示例代码:```num = 10float_num = float(num)print(float_num) # 输出结果为10.0str_num = "20"int_num = int(str_num)print(int_num) # 输出结果为20```2. 字符串转换Python中字符串转换是非常常见的操作,可以使用str()函数将其他类型的数据转换为字符串。

另外,还可以使用split()函数将字符串分割为列表,使用join()函数将列表转换为字符串。

示例代码:```num = 10str_num = str(num)print(str_num) # 输出结果为"10"str_list = "1,2,3,4,5"num_list = str_list.split(",")print(num_list) # 输出结果为['1', '2', '3', '4', '5']joined_str = "-".join(num_list)print(joined_str) # 输出结果为"1-2-3-4-5"```3. 列表转换在Python中,列表转换是非常常见的操作。

pyqt5的plaintextedit用法_概述及解释说明

pyqt5的plaintextedit用法_概述及解释说明

pyqt5的plaintextedit用法概述及解释说明1. 引言1.1 概述这篇文章将介绍PyQt5中PlainTextEdit的用法。

PlainTextEdit是一种文本编辑器的组件,它提供了丰富的功能和特点,使得在图形用户界面(GUI)应用程序中进行文本编辑成为可能。

在本文中,我们将详细介绍如何使用PyQt5中的PlainTextEdit组件来创建、设置和操作文本内容。

1.2 文章结构本文按照以下结构进行详细讲解:- 第2部分:PyQt5的PlainTextEdit简介,介绍了该组件的作用和特点,并提供了在PyQt5中如何使用PlainTextEdit的方法。

- 第3部分:PlainTextEdit的基本用法,包括创建和设置组件、插入和获取文本内容以及格式化文本显示和处理滚动条事件等。

- 第4部分:使用信号与槽处理文本编辑变化,通过连接信号与槽函数实现对编辑事件进行处理,并获取并更新改动信息以及响应用户的编辑操作事件。

- 第5部分:其他高级用法及注意事项,包括设置PlainTextEdit属性和样式风格、访问和操作选中文本部分及光标位置、坐标转换及获取所在行列号等。

1.3 目的通过阅读本文,读者将能够全面了解到PyQt5中PlainTextEdit的用法,并掌握如何创建、设置和操作文本内容,并能够通过信号与槽处理文本编辑变化。

此外,读者还将了解到一些高级用法和注意事项,提升对PlainTextEdit的应用技巧和使用体验。

无论是初学者还是有一定经验的开发人员,都可以从本文中获得有益的知识和指导。

2. PyQt5的PlainTextEdit简介:2.1 PlainTextEdit的作用:PlainTextEdit是PyQt5中的一个文本编辑器组件,提供了一个可供用户编辑纯文本的区域。

它适用于需要在应用程序中显示、编辑和处理大量文本内容的场景。

2.2 PlainTextEdit的特点:- 可以显示和编辑多行文本内容。

python if语句 行列表达式

python if语句 行列表达式

Python中的if语句是一种条件语句,它根据表达式的值来决定程序的执行路径。

在Python中,if语句的行列表达式是一种在if语句中使用的特殊写法,它可以让程序员更加简洁地表达逻辑判断。

本文将介绍Python中的if语句和行列表达式的使用方法,以及它们在实际开发中的应用。

1. Python中的if语句在Python中,if语句的基本语法如下:```pythonif 表达式:代码块elif 表达式:代码块else:代码块```在这个语法中,如果表达式的值为True,那么执行该表达式对应的代码块。

如果表达式的值为False,则继续判断下一个elif表达式,直到找到为True的表达式或者执行到else代码块。

if语句的代码块需要缩进,通常使用四个空格的缩进。

2. 行列表达式行列表达式是一种特殊的写法,它可以将if语句的执行路径写在一行代码中,使得代码更加简洁。

行列表达式的基本语法如下:```pythonresult = 值1 if 表达式 else 值2```这个语法中,如果表达式的值为True,则result的值为值1;如果表达式的值为False,则result的值为值2。

行列表达式可以在需要简洁的逻辑判断场景中使用,可以减少代码的行数,使得代码更加清晰易读。

3. if语句行列表达式的应用在实际开发中,if语句和行列表达式有着广泛的应用场景。

下面我们将介绍几个常见的应用案例。

3.1. 判断表达式的真假通过if语句行列表达式,可以很方便地判断表达式的真假,并根据结果进行相应的赋值操作。

例如:```pythonx = 1y = 2result = "x大于y" if x > y else "x小于等于y"print(result)```3.2. 简化返回值在函数中,可以使用行列表达式来简化返回值的操作。

例如:```pythondef max_num(a, b):return a if a > b else b```3.3. 列表推导式在列表推导式中,也经常会用到行列表达式。

python提取文本数据转换成表格的方法-概述说明以及解释

python提取文本数据转换成表格的方法-概述说明以及解释

python提取文本数据转换成表格的方法-范文模板及概述示例1:Python中有多种方法可以提取文本数据并将其转换成表格。

以下是几种常用的方法:1. 使用pandas库:pandas是Python中最常用的数据处理和分析库之一。

它提供了强大的函数和工具,可以方便地将文本数据转换成表格。

首先,您需要使用pandas库导入文本数据。

可以使用`read_csv()`函数来读取CSV格式的文本文件,或者使用`read_excel()`函数来读取Excel文件。

例如:pythonimport pandas as pd从CSV文件中读取数据df = pd.read_csv('data.csv')从Excel文件中读取数据df = pd.read_excel('data.xlsx')读取数据后,您可以使用pandas中的各种方法和函数来处理和转换数据。

例如,您可以使用`head()`函数来查看前几行数据,使用`info()`函数来查看数据的概要信息,使用`describe()`函数来获取统计信息等等。

另外,您还可以使用`to_csv()`函数将数据保存为CSV文件,使用`to_excel()`函数将数据保存为Excel文件。

例如:python查看前5行数据print(df.head())查看数据的概要信息print(())获取数据的统计信息print(df.describe())将数据保存为CSV文件df.to_csv('new_data.csv', index=False)将数据保存为Excel文件df.to_excel('new_data.xlsx', index=False)2. 使用csv模块:csv模块是Python的内置模块,可以轻松处理CSV 格式的文本数据。

首先,您需要使用csv模块打开文本文件,并创建一个csv文件读取器。

然后,您可以使用for循环遍历读取器来读取文件中的每一行数据,并使用列表或字典等数据结构来存储数据。

python文件的读取以及类型转换

python文件的读取以及类型转换

python⽂件的读取以及类型转换1 wxyFile=open('wxy.txt','w')2 wxyFile.write('世界真是美好呢.\n')3 wxyFile.close()4 wxyFile=open('wxy.txt','a')5 wxyFile.write('你这么可爱,你喜欢的⼈⼀定会⼀直陪在你⾝边的!\n')6 wxyFile.close()1、读⽂件按照打开open——读取read——关闭close 的顺序要以读⽂件的模式打开⼀个⽂件对象,使⽤Python内置的open()函数,传⼊⽂件名和标⽰符:f = open('/Users/michael/test.txt', 'r')标⽰符'r'表⽰读,这样,我们就成功地打开了⼀个⽂件。

如果⽂件不存在,open()函数就会抛出⼀个IOError的错误,并且给出错误码和详细的信息告诉你⽂件不存在:f=open('/Users/michael/notfound.txt', 'r')Traceback (most recent call last):File "<stdin>", line 1, in <module>FileNotFoundError: [Errno 2] No such file or directory: '/Users/michael/notfound.txt'如果⽂件打开成功,接下来,调⽤read()⽅法可以⼀次读取⽂件的全部内容,Python把内容读到内存,⽤⼀个str对象表⽰:f.read()>>>'Hello, world!'最后⼀步是调⽤close()⽅法关闭⽂件。

Python字符串、元组、列表、字典互相转换的方法

Python字符串、元组、列表、字典互相转换的方法

Python字符串、元组、列表、字典互相转换的⽅法废话不多说了,直接给⼤家贴代码了,代码写的不好还去各位⼤侠见谅。

#-*-coding:utf-8-*-#1、字典dict = {'name': 'Zara', 'age': 7, 'class': 'First'}#字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'}print type(str(dict)), str(dict)#字典可以转为元组,返回:('age', 'name', 'class')print tuple(dict)#字典可以转为元组,返回:(7, 'Zara', 'First')print tuple(dict.values())#字典转为列表,返回:['age', 'name', 'class']print list(dict)#字典转为列表print dict.values#2、元组tup=(1, 2, 3, 4, 5)#元组转为字符串,返回:(1, 2, 3, 4, 5)print tup.__str__()#元组转为列表,返回:[1, 2, 3, 4, 5]print list(tup)#元组不可以转为字典#3、列表nums=[1, 3, 5, 7, 8, 13, 20];#列表转为字符串,返回:[1, 3, 5, 7, 8, 13, 20]print str(nums)#列表转为元组,返回:(1, 3, 5, 7, 8, 13, 20)print tuple(nums)#列表不可以转为字典#4、字符串#字符串转为元组,返回:(1, 2, 3)print tuple(eval("(1,2,3)"))#字符串转为列表,返回:[1, 2, 3]print list(eval("(1,2,3)"))#字符串转为字典,返回:<type 'dict'>print type(eval("{'name':'ljq', 'age':24}"))。

python实现文本文件内容换行

python实现文本文件内容换行

python实现⽂本⽂件内容换⾏前⾔:  最近⼀次密码学实验,给了⼀段超级长(7页⼩四宋体的16进制字符串的word⽂档……)的密⽂求解密,肯定要把它保存到⼀个txt⽂件⾥呀,然后指针读⼊依次解密……(这是我第⼀印象)。

然后拷贝到txt后发现原来word⾥貌似是⼈为的换⾏⽽⾮输⼊过长⾃动换⾏。

读出时为了避免包括了'\n'的换⾏符,需要把它去除掉。

直接上例⼦ 这是我⼈为加⼊⼀些回车换⾏的⼀串随机⽂本,它在记事本下就是这样不不连续的感觉代码:1# -*- coding = utf-8 -*-23 fp1 = open('hexstring.txt','r+')4 str=fp1.read()5print("str:",str)6 temp=''7for x in str:8if x != '\n':9 temp+=x10print(temp)11 fp1.close()1213 fp2 = open('hexstring.txt','w+')14 fp2.write(temp)15 fp2.close()分析: 1.fp1在这⾥只是打开这个⽂本⽂件读出内容赋给str,先打印出来; 然后循环⼀下,把每个字符拿出来和换⾏符'\n'⽐较。

如果不是换⾏符就加⼊到temp后⾯。

2.fp2把temp内容重新写⼊这个⽂档内。

效果: 打开⽂档是这样的理想效果: Over,代码其实还可以继续完善……。

如何使用Python进行文本处理和正则表达式

如何使用Python进行文本处理和正则表达式

如何使用Python进行文本处理和正则表达式Python是一种非常强大的编程语言,特别适合用于文本处理和正则表达式操作。

在本文中,我将介绍如何使用Python进行文本处理和正则表达式操作,以帮助您更好地利用这些功能。

首先,让我们了解一下什么是文本处理。

文本处理是指对文本数据进行操作和转换的过程。

在Python中,有一些内置函数和库可以帮助我们进行基本的文本处理操作。

接下来,我将介绍一些常用的文本处理操作。

1. 字符串操作:Python提供了一系列的字符串操作函数,例如字符串拼接、分割、替换等。

您可以使用这些函数来处理文本数据中的字符串部分,以满足您的需求。

2. 文件操作:Python的内置函数允许您打开、读取和写入文本文件。

您可以使用这些函数来处理文本文件,例如从文件中读取文本数据、将数据写入文件等。

3. 正则表达式:正则表达式是一种强大的文本模式匹配工具。

它可以用于查找、替换、分割和提取文本中的特定模式。

在Python中,内置的re模块提供了对正则表达式的支持。

接下来,我将详细介绍如何使用正则表达式进行文本处理。

1. 导入re模块:在使用正则表达式之前,首先需要导入re模块。

可以使用以下代码行进行导入:```pythonimport re```2. 简单的正则表达式匹配:首先,让我们从最简单的正则表达式匹配开始。

假设我们想要在文本中查找是否存在特定的单词。

我们可以使用re模块的search()函数来进行匹配。

以下是一个示例:```pythonimport retext = "Hello, World!"pattern = r"World"result = re.search(pattern, text)if result:print("找到匹配")else:print("未找到匹配")```在这个例子中,我们使用re模块的search()函数来查找文本中是否存在"World"这个单词。

Python实现list,tuple,str和dict之间的相互转换

Python实现list,tuple,str和dict之间的相互转换

Python实现list,tuple,str和dict之间的相互转换1、字典(dict)dict = {‘name': ‘Zara', ‘age': 7, ‘class': ‘First'}1.1 字典——字符串返回:print type(str(dict)), str(dict)1.2 字典——元组返回:(‘age', ‘name', ‘class')print tuple(dict)1.3 字典——元组返回:(7, ‘Zara', ‘First')print tuple(dict.values())1.4 字典——列表返回:[‘age', ‘name', ‘class']print list(dict)1.5 字典——列表print dict.values2、元组tup=(1, 2, 3, 4, 5)2.1 元组——字符串返回:(1, 2, 3, 4, 5)print tup.__str__()2.2 元组——列表返回:[1, 2, 3, 4, 5]print list(tup)2.3 元组不可以转为字典3、列表nums=[1, 3, 5, 7, 8, 13, 20];3.1 列表——字符串返回:[1, 3, 5, 7, 8, 13, 20]print str(nums)3.2 列表——元组返回:(1, 3, 5, 7, 8, 13, 20)print tuple(nums)3.3 列表不可以转为字典4、字符串4.1 字符串——元组返回:(1, 2, 3)print tuple(eval("(1,2,3)"))4.2 字符串——列表返回:[1, 2, 3]print list(eval("(1,2,3)"))4.3 字符串——字典返回:print type(eval("{'name':'ljq', 'age':24}"))补充:python⼊门之路:⼀个⼩错误,str变tuple笔者在编程的时候发现,原先定义的str字符串在传递和引⽤的时候会莫名其妙改变类型,变成tuple。

PythonDataFrame一列拆成多列以及一行拆成多行

PythonDataFrame一列拆成多列以及一行拆成多行

PythonDataFrame⼀列拆成多列以及⼀⾏拆成多⾏
摘要
在进⾏数据分析时,我们经常需要把DataFrame的⼀列拆成多列或者根据某列把⼀⾏拆成多⾏,这篇⽂章主要讲解这两个⽬标的实现。

1.读取数据
2.将City列转成多列(以‘|'为分隔符)
这⾥使⽤匿名函数lambda来讲City列拆成两列。

3.将DataFrame⼀⾏拆成多⾏(以‘|'为分隔符)
⽅法⼀:在刚刚得到的DataFrame基础上操作,如下图所以,可以明显看到我们按照City列将DataFrame拆成了多⾏。

主要是先将DataFrame拆成多列,然后拆成多个DataFrame再使⽤concat组合。

但是这种⽅法碰到City列切割不均匀的时候可能会⿇烦⼀点,因此,这个时候你可以使⽤万能⽅法⼆。

⽅法⼆:这个⽅法的主要思想是,⾸先将DataFrame中需要拆分的列进⾏拆分,再使⽤stack()进⾏轴变换,然后通过index 来join即可,如下所⽰。

⾸先,将刚刚的df还原成原始形式:
接下来取出其City列,并切分成多列之后轴转换,之后重新设置索引,并且重命名为Company
最后删除df⾥⾯的Country列,并将DataFrame-df1 使⽤join到df⾥⾯得到最后的结果。

以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

numpy行列变换

numpy行列变换

numpy行列变换Numpy是一种开源的Python数学库,它的强大的数组处理功能能够帮助程序员开发复杂的程序。

其中,Numpy提供了一系列用于行列变换的函数,它们在解决复杂的线性代数问题上很有用,也经常被用于数据分析。

本文将介绍三种常见的Numpy函数,它们分别是:transpose(转置)、reshape(重构)和reshape(变形)。

第一个是Numpy的转置函数transpose,它可以将一个二维数组转置,即行变列,列变行。

Numpy转置函数的调用方法很简单,只需在Numpy模块下用transpose函数将二维的数组传递进去即可。

比如: import numpy as npa = np.array([[1,2,3],[4,5,6],[7,8,9]])b = np.transpose(a)print (b)输出结果为:[[1 4 7][2 5 8][3 6 9]]经过transpose函数转置后,列与行恰恰相反。

其次,Numpy也提供了 reshape函数,它可以对多维数组进行重新构造,从而改变其形状。

reshape函数只有一个参数,用于指定新数组的形状,但这个参数必须满足原数组元素数量不变的条件。

下面是一个reshape函数的例子:import numpy as npa = np.array([[1,2,3],[4,5,6],[7,8,9]])b = np.reshape(a,(9,1))print (b)输出结果为:[[1][2][3][4][5][6][7][8][9]]这里将原来的三行三列的数组转换成了九行一列的数组。

最后,Numpy还提供了一个叫做reshape的函数,它将原来的数组变形,形状仍然不变,但元素的排列顺序有所改变。

reshape函数调用方式与reshape函数相同,只不过参数不同而已。

比如:import numpy as npa = np.array([[1,2,3],[4,5,6],[7,8,9]])b = np.reshape(a,(3,3),order=’F’)print (b)输出结果为:[[1 4 7][2 5 8][3 6 9]]可以看到,加入order参数以后,变形后的结果与transpose函数的结果完全相同。

使用Numpy读取CSV文件,并进行行列删除的操作方法

使用Numpy读取CSV文件,并进行行列删除的操作方法

使⽤Numpy读取CSV⽂件,并进⾏⾏列删除的操作⽅法Numpy是Python强⼤的数据计算和处理模块,其操作数据⾮常迅速且简单易⾏。

⾸先读取CSV⽂件>>> import numpy as np#导⼊numpy模块>>> temp=np.loadtxt("file.csv",dtype=np.int,delimiter=',')可以看到两⾏代码搞定,看⼀下temp的内容>>> temparray([[21, 2, 32],[ 1, 2, 3],[ 2, 3, 4]])在这⾥temp是array类型,如果想要得到列表list可以使⽤⼀个命令>>> temp.tolist()[[21, 2, 32], [1, 2, 3], [2, 3, 4]]就变成列表了。

对temp进⾏删除操作对array进⾏⾏或列进⾏删除操作也⾮常简单对⾏进⾏删除操作>>> temparray([[21, 2, 32],[ 1, 2, 3],[ 2, 3, 4]])>>> tem=np.delete(temp,0,axis=0)>>> temarray([[1, 2, 3],[2, 3, 4]])>>>对列进⾏删除操作>>> ten=np.delete(temp,0,axis=1)>>> tenarray([[ 2, 32],[ 2, 3],[ 3, 4]])>>>注意句法np.delete(temp,0,axis=1)#temp为操作对象,0表⽰要删除的对象索引,axis表⽰⾏还是列,axis=0表⽰删除⾏,axis=1表⽰删除列。

以上这篇使⽤Numpy读取CSV⽂件,并进⾏⾏列删除的操作⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档