我也忘了啥时候写的了

1 关于字符串大小写

  • 全部大写 upper()
s = 'the quick brown fox'
print(s.upper())
-----
THE QUICK BROWN FOX
  • 全部小写 lower()
s = 'the quick brown fox'
print(s.upper())
----
the quick brown fox
  • 每个单词的第一个字母大写
import string

s = 'the quick brown fox'

print(string.capwords(s))
------
The Quick Brown Fox

2 关于format格式化函数

a1 = 'hello'
a2 = 'world'
print('{} {}'.format(a1,a2))
-----
hello world

2.1 %的用法

是的,最简单的是用%来传递;%d表示整数,%s表示字符串,%f表示浮点型。

a1 = 'hello'
a2 = 'world'
print('%s %s'%(a1,a2))
----
hello world

看各位的习惯啦~

<think>嗯,用户想处理或操作CSV文件。首先,我需要回忆一下关于CSV文件处理的基本方法。记得Python有内置的csv模块,可以方便地读CSV文件。那用户可能需要的步骤包括读取、处理和入CSV文件。 先考虑读取CSV文件。使用csv.reader应该可以逐行读取,或者用DictReader以字典形式读取,这样可以通过列名访问数据。比如用户可能想读取数据后进行一些过滤或计算。比如处理时可能需要修改某些列的值,或者添加新列。 然后是入CSV文件。csv.writer和DictWriter应该能派上用场。需要注意入时的格式,比如是否包含表头,分隔符是什么。可能还需要处理不同的编码问题,比如UTF-8或者其他格式。 另外,用户提到的参考引用里有提到numpy的savetxt方法,这可能适用于处理数组数据。如果用户的数据是数值型数组,使用numpy可能更高效。但如果是结构化的表格数据,csv模块更合适。 还有可能用户需要合并多个CSV文件,或者处理大型文件时的性能问题。这时候可能需要分块读取,或者使用生成器来逐行处理,避免内存不足。 还要注意异常处理,比如文件不存在或者格式错误的情况,需要捕获异常并提供友好的提示。比如用try-except块来包裹文件操作。 另外,编码问题也是一个常见痛点,特别是处理中文内容时,可能需要指定encoding参数为'utf-8-sig'或者其他合适的编码方式,避免乱码。 用户可能还关心如何处理包含特殊字符的字段,比如字段中有逗号或者换行符,这时候csv模块会自动处理,但需要正确使用quotechar和quoting参数。 总结一下,处理CSV文件的步骤大致是:导入csv模块,打开文件,使用reader或writer进行操作,处理数据时注意格式和编码,最后关闭文件或者使用with语句自动管理资源。如果有更复杂的需求,比如合并文件或处理大数据,可能需要额外的技巧或库的支持,比如pandas。</think>### 如何用Python处理CSV文件? #### 1. **读取CSV文件** **方法1:使用`csv.reader`逐行读取** ```python import csv with open('data.csv', 'r', encoding='utf-8') as f: reader = csv.reader(f) header = next(reader) # 读取表头 for row in reader: print(row) # 每行以列表形式返回 ``` **方法2:使用`csv.DictReader`按列名访问** ```python with open('data.csv', 'r') as f: reader = csv.DictReader(f) # 每行转为字典 for row in reader: print(row['name'], row['age']) # 直接通过列名访问 ``` #### 2. **入CSV文件** **方法1:使用`csv.writer`入列表数据** ```python data = [ ['Name', 'Age'], ['Alice', 25], ['Bob', 30] ] with open('output.csv', 'w', newline='') as f: writer = csv.writer(f) writer.writerows(data) # 入多行 ``` **方法2:使用`csv.DictWriter`入字典数据** ```python fieldnames = ['Name', 'Age'] data = [ {'Name': 'Alice', 'Age': 25}, {'Name': 'Bob', 'Age': 30} ] with open('output.csv', 'w', newline='') as f: writer = csv.DictWriter(f, fieldnames=fieldnames) writer.writeheader() # 入表头 writer.writerows(data) ``` #### 3. **处理复杂数据** - **跳过空行**:通过`skipinitialspace=True`参数忽略空格 ```python csv.reader(f, skipinitialspace=True) ``` - **自定义分隔符**:处理TSV文件(制表符分隔) ```python csv.reader(f, delimiter='\t') ``` - **处理特殊字符**:自动转义引号 ```python csv.writer(f, quoting=csv.QUOTE_NONNUMERIC) # 非数字字段添加引号 ``` #### 4. **使用NumPy处理数值型数据** ```python import numpy as np # 读取CSV为二维数组 data = np.loadtxt('data.csv', delimiter=',', dtype=int) # 保存数组到CSV np.savetxt('output.csv', data, fmt='%d', delimiter=',') ``` #### 5. **合并多个CSV文件(示例)** ```python import glob files = glob.glob('*.csv') # 获取所有CSV文件 with open('merged.csv', 'w') as outfile: for i, filename in enumerate(files): with open(filename, 'r') as infile: if i != 0: next(infile) # 跳过后续文件的表头 outfile.write(infile.read()) ``` ### 注意事项 1. **编码问题**:若文件含中文,需指定`encoding='utf-8-sig`[^1] 2. **性能优化**:大型文件建议使用生成器逐行处理 3. **异常处理**:捕获文件不存在错误 ```python try: with open('data.csv', 'r') as f: # 操作 except FileNotFoundError: print("文件不存在") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值