相关文章推荐
痴情的眼镜  ·  鸿蒙新版本,HarmonyOS ...·  2 天前    · 
满身肌肉的火锅  ·  MapPropertySource ...·  6 月前    · 
苦闷的茴香  ·  Electron 基础教程-7.3 ...·  1 年前    · 
近视的镜子  ·  MSSOAP30.dll 导入 error ...·  1 年前    · 

最近在做一些关于图像处理方面的问题,用到了python中的PIL库对图像进行保存,代码如下

#新建一张图片
GroundImg = Image.new('RGBA', (picture_width, picture_height), 0)
GroundImg.save(save_path)#save_path变量保存图片存储路径

这个代码执行时遇到了以下问题:
fp = builtins.open(filename, “w+b“)FileNotFoundError: [Errno 2] No such file or directory:
查了挺多资料发现是因为:
PIL保存图片时,如果代码里的目录不存在,PIL不会创建目录,也不会主动抛出异常
将代码改为这样就可以正常运行啦

 if not os.path.exists(save_path):#检查目录是否存在
                os.makedirs(save_path)#如果不存在则创建目录
 GroundImg = Image.new('RGBA', (picture_width, picture_height), 0)
 GroundImg.save(save_path)#save_path变量保存图片存储路径
                    解决fp = builtins.open(filename, “w+b“)FileNotFoundError: [Errno 2] No such file or directory:
                    解决fp = builtins.open(filename, “w+b“)FileNotFoundError: [Errno 2] No such file or directory:
				
FileNotFoundError: [Errno 2] No such file or directory: ‘./mnist_image_label/mnist_train_jpg_6000028755_0.jpg’ 在tensorflow中读取文件报错 Traceback (most recent call last): File "Tensorflow/Test/9-26 mnist_train_ex1.py", line 43, in <module> x_train,y_
获取当前Node.js版本的核心模块列表: var builtins = require ( 'builtins' ) ( ) assert ( builtins . indexOf ( 'http' ) > - 1 ) 获取特定Node.js版本的核心模块列表: var builtins = require ( 'builtins' ) ( { version : '6.0.0' } ) assert ( builtins . indexOf ( 'http' ) > - 1 ) 将实验模块添加到列表中: var builtins = require ( 'builtins' ) ( { experimental : true } ) assert ( builtins . indexOf ( 'wasi' ) > - 1 ) 麻省理工学
用于Web(HTML + SVG)的ReactDream内置组件 该库包含Web的全套ReactDream内置组件,包括SVG组件和HTML组件。 这是的配套库, 是React组件的Fantasy Land类型。 yarn add react-dream-web-builtins 然后是ReactDream本身的一些peerDependencies: yarn add react recompose import { Html , Svg } from 'react-dream-web-builtins' import { render } from 'react-dom' const withChildren = const Title = Html . H1 . contramap ( ( ) => ( { children : 'Title' FileNotFoundError: [Errno 2] No such file or directory:'dataset//hymenoptera_data//train//ants//9715481_b3cb4114ff.jpg' 一开始以为是解析路径的问题,首先查找后确认文件存在 根据网上的解决办法:前面加r,也就是下面的代码。但是在我这个程序中依然报同样的错误, image_path = r'dataset/hymenoptera_d..
About the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xv About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix ChaPter 1 introduction to Shell Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 About This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 What Shell Scripting Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 What Shell Scripting Isn’t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Why Shell? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 The Bourne Shell Family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Why Portable? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Why Not? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Beyond Portability: Cleanliness and Good Living . . . . . . . . . . . . . . . .10 What’s in This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Introducing the Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Interactive and Noninteractive Usage . . . . . . . . . . . . . . . . . . . . . . . . . .11 Simple Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Introducing Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Introducing Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 The printf Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 ChaPter 2 Patterns and regular expressions . . . . . . . . . . . . . . . . . . . . . . . . .21 Shell Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 Pattern-Matching Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 Character Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 Using Shell Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 Pathname Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 Differences from Shell Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 Using Globs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 10436fmfinal 7 10/23/08 10:40:25 PM ■CONTENTS Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Basic Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 Backreferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 Extended Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Common Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Replacements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Using Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Replacing Patterns with Regular Expressions . . . . . . . . . . . . . . . . . . .39 Common Pitfalls of Regular Expressions . . . . . . . . . . . . . . . . . . . . . . .40 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41 ChaPter 3 Basic Shell Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 Introducing Control Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 What Is Truth? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 Introducing Conditional Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 Introducing Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 Thinking About Control Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 Introducing Redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56 Understanding File Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57 Redirection Using exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61 Introducing Here Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64 Redirection and Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68 ChaPter 4 Core Shell Features explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 Words and Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72 Command Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 Shell Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77 Escaping Characters with a Backslash . . . . . . . . . . . . . . . . . . . . . . . .77 Escaping Characters with Single Quotes . . . . . . . . . . . . . . . . . . . . . . .79 Escaping Characters with Double Quotes . . . . . . . . . . . . . . . . . . . . . .79 Quoting Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79 10436fmfinal 8 10/23/08 10:40:26 PM ■CONTENTS Substitution and Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 Substitution and Field Splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 Understanding Parameter Substitution . . . . . . . . . . . . . . . . . . . . . . . .81 Tilde Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85 Globbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87 ChaPter 5 Shells Within Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 Understanding Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 Variables and the Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90 Manipulating the Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91 Temporary Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92 Exploring Subshells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94 Subshells and External Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94 Command Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95 Implicit and Explicit Subshells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97 Modifying the State of the Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99 Shell Builtins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99 Shell Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99 The eval Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102 The dot ( .) Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108 Using Shells Within Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109 When to Use an External Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109 When to Use eval or dot ( .) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 When to Use Subshells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 When to Use Command Substitution . . . . . . . . . . . . . . . . . . . . . . . . .112 Combinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115 ChaPter 6 invocation and execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117 Shell Invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117 How UNIX Runs Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117 Shell Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 Using Positional Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120 Manipulating Parameters for Fun and Profit . . . . . . . . . . . . . . . . . . .122 Shell Startup and Interactive Sessions . . . . . . . . . . . . . . . . . . . . . . . .128 10436fmfinal 9 10/23/08 10:40:26 PM ■CONTENTS Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 More on Jobs and Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 Understanding Runtime Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . .137 Debugging Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143 ChaPter 7 Shell Language Portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145 More on Portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145 Standardization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146 Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147 Portability Issues: Welcome to the Club . . . . . . . . . . . . . . . . . . . . . . .147 Common Extensions and Omissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148 Other Kinds of Expansion and Substitution . . . . . . . . . . . . . . . . . . . .148 Syntax Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154 Common Omissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158 Common Shells and Their Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158 Almquist Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158 Bourne-Again Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159 Debian Almquist Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160 Korn Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161 Public Domain Korn Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162 Solaris /usr/xpg4/bin/sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163 SVR2 Bourne Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164 SVR4 Bourne Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164 Traditional Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 Z Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 Execution Preambles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 Setting Options and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168 Picking a Better Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169 Self-Modifying Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170 Emulating Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174 10436fmfinal 10 10/23/08 10:40:27 PM ■CONTENTS ChaPter 8 Utility Portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175 Common Variations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175 Days of Yore: System V and BSD . . . . . . . . . . . . . . . . . . . . . . . . . . . .176 GNU Arrives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177 Standardization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178 busybox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178 Shell Builtins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179 Avoiding Unnecessary Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180 Relying on Extensions Considered Harmful . . . . . . . . . . . . . . . . . . . .181 Test with More Than One Shell on More Than One System . . . . . .182 Document Your Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182 Common Utility Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183 Public Enemy #1: echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183 Multiple Different Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184 Archive Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185 Block Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188 Other Common Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188 What to Do When Something Is Unavailable . . . . . . . . . . . . . . . . . . . . . . . .200 Roll Your Own . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200 Add a Missing Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201 Use Something Else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201 Demand a Real System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201 A Few Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203 ChaPter 9 Bringing it all together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205 Robustness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205 Handling Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205 Temporary Files and Cleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 Handling Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210 Startup Files and Environment Variables . . . . . . . . . . . . . . . . . . . . . .211 Documentation and Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 Degrade Gracefully . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214 Specify, and Test For, Requirements . . . . . . . . . . . . . . . . . . . . . . . . .216 Scripts That Write Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216 Building a Script for a Specific Target . . . . . . . . . . . . . . . . . . . . . . . .217 Mixing with Other Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218 10436fmfinal 11 10/23/08 10:40:27 PM ■CONTENTS ChaPter 10 Shell Script design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219 Do One Thing Well . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219 Separate Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220 Isolate Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220 Be Cooperative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221 Filters, File Manipulation, and Program Manipulation . . . . . . . . . . .221 Command-Line Options and Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . .224 Designing Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226 Options and Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228 Set Reasonable Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 Define Your Functional Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230 Define Your Target Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230 Case Study: pids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235 ChaPter 11 Mixing and Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237 Mixing Quoting Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237 Embedding Shell Scripts in Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239 Shell and make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239 Shell and C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241 Embedding Code in Shell Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242 Shell and sed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242 Shell and awk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246 Utilities and Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252 What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 aPPeNdix a the Shell Command Language . . . . . . . . . . . . . . . . . . . . . . . . . . . .255 2 . Shell Command Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255 2 .1 Shell Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255 2 .2 Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256 2 .3 Token Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258 2 .4 Reserved Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260 2 .5 Parameters and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260 2 .6 Word Expansions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264 2 .7 Redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271 2 .8 Exit Status and Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275 2 .9 Shell Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276 10436fmfinal 12 10/23/08 10:40:28 PM ■CONTENTS 2 .10 Shell Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285 2 .11 Signals and Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292 2 .12 Shell Execution Environment . . . . . . . . . . . . . . . . . . . . . . . . . . .293 2 .13 Pattern Matching Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294 2 .14 Special Built- In Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296 aPPeNdix B the sh Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298 Operands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298 Stdin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299 Input Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300 Asynchronous Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303 Stdout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303 Stderr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303 Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303 Extended Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303 Command History List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303 Command Line Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303 Command Line Editing (vi- mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . .304 vi Line Editing Insert Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304 vi Line Editing Command Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305 Exit Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314 Consequences Of Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314 Application Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314 Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316 Future Directions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318 Change History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318 Issue 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318 Issue 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318 10436fmfinal 13 10/23/08 10:40:28 PM ■CONTENTS aPPeNdix C regular expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319 9 . Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319 9 .1 Regular Expression Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . .320 9 .2 Regular Expression General Requirements . . . . . . . . . . . . . . . .321 9 .3 Basic Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322 9 .4 Extended Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . .327 9 .5 Regular Expression Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . .330 iNdex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339
解决fp = builtins.open(filename, “w+b“)FileNotFoundError: [Errno 2] No such file or directory: